java - 如何 "try start"一个线程从几个其他线程,java

标签 java multithreading thread-safety

我在函数中这样写:

if(myThread.isAlive()) {
} else {
myThread.start();
}

但是如果多个线程同时调用这个函数,这是不安全的。启动一个正在运行的线程会抛出异常。

那么除了在它周围放置 try-catch,我还有其他选择吗?

最佳答案

使这个方法同步。此外,此检查 (isAlive()) 是不安全的,因为如果线程已完成,您将无法再次启动它(并且 isAlive() 将返回 false...)

关于java - 如何 "try start"一个线程从几个其他线程,java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966398/

相关文章:

java - Asynctask 可以安全地使用大量下载而不是线程吗?

python - 使用 twisted.enterprise.adbapi 处理 'database is locked' 错误的正确和最佳方法

sockets - libc套接字线程安全吗?

c++ - 多线程导致分段违规

c - C 中的可移植线程安全?

java - IBMRestServlet 类的链接已损坏 - RESTFul Web 服务

java - 对象类型声明

java - 将 onMessage() 方法转换为原子操作

java - < SOAP :header/> block in not coming in soap response

c# - WPF/C# 中这种线程方式效率低下吗?