어떻게 이름을 Thread
으로 지정할 수 있습니까?스레드의 이름을 지정하는 방법은 무엇입니까?
override val t: Thread = Thread {
try {
transmit()
} catch (e: Exception) {
println("Transmitter throws exception: $e")
}
}
어떻게 이름을 Thread
으로 지정할 수 있습니까?스레드의 이름을 지정하는 방법은 무엇입니까?
override val t: Thread = Thread {
try {
transmit()
} catch (e: Exception) {
println("Transmitter throws exception: $e")
}
}
할 수 있습니다 stdlib에서 thread
기능을 사용하여 명명 된 스레드 생성 :
fun thread(
start: Boolean = true,
isDaemon: Boolean = false,
contextClassLoader: ClassLoader? = null,
name: String? = null,
priority: Int = -1,
block:() -> Unit
): Thread
그냥 코드를 변경을 : 스레드 내에서 스레드의 이름을 설정하기 위해
override val t: Thread = thread(name = "transmitter thread") {
try {
transmit()
} catch (e: Exception) {
println("Transmitter throws exception: $e")
}
}
Runnable
을받는 Thread
의 생성자를 사용할 수 없습니다. 인수가 정렬 방법에 의한 있지만,이 작업을 수행해야합니다,
val thread = object : Thread() {
override fun run() {
name = "thread with random name: ${Math.random()}"
}
}
'Runnable을받는 Thread의 생성자를 사용할 수 없습니까? Why is it? –
람다는'Runnable' 인스턴스를 나타내므로'Thread' 인스턴스가 아닙니다. 따라서 언어 관점에서 볼 때 스레드가없고'Runnable '이기 때문에 스레드 이름을 내부에 설정할 수 없습니다. –
저는 조금 혼란 스럽습니다. 제 코드에 대한 acepted (다른 대답)가 가장 쉽습니다. 그러나 제 코드는 이제 약간의 메쉬가되었으므로 테스트를 위해 실행할 수 없습니다. 그것들은 작동하지 않을 것이라고 말하는 사람들? – ycomp
당신은 스레드의 생성자를 사용할 수 있습니다 :
override val t: Thread = Thread({
try {
transmit()
} catch (e: Exception) {
println("Transmitter throws exception: $e")
}}, "Your name here")
}
스레드를 가지고 당신은 개체 식을 사용하여
Thread
클래스를 서브 클래 싱 할 필요가 setName 메소드가 있다면, 그 코드를 시도해 볼까요? – aldok@aldok이 코드 내에서 어떻게 스레드에 액세스 할 수 있습니까? 그래서 setname을 호출 할 수 있습니까? – ycomp