Вы можете использовать это для проверки URL в отдельной теме.
class URLReader implements Runnable
{
def valid
def url
URLReader( url ) {
this.url = url
}
void run() {
try {
def connection = url.toURL().openConnection()
valid = ( connection.responseCode == 200 ) as Boolean
} catch ( Exception e ) {
println e.message
valid = Boolean.FALSE
}
}
}
def reader = new URLReader( "http://www.google.com" )
new Thread( reader ).start()
while ( reader.valid == null )
{
Thread.sleep( 500 )
}
println "valid: ${reader.valid}"
Примечания. Допустимым атрибутом будет null, Boolean.TRUE или Boolean.FALSE. Вам нужно будет немного подождать, чтобы все потоки могли открыть соединение. В зависимости от количества проверяемых URL-адресов, вы в конечном итоге достигнете предела количества потоков / соединений, которые вы можете реально обработать, поэтому следует проверять URL-адреса партиями соответствующего размера.