通过实现 Runnable 接口来获取当前线程对象只能使用 Thread.currentThread() 方法使用 Callable 和 Future 创建线程
注意启动线程使用 start() 方法,而不要调用线程的 run() 方法。如果直接调用 run() 方法,系统不会为其创建线程,会将其当成一个普通方法,并且无法再调用start() 方法,否则将引发 IllegalThreadStateException 异常控制线程
程序只能对新建状态的线程调用 start() 方法
setDaemon(true) 必须在 start() 之前调用,否则会引发 IllegalThreadStateException 异常线程睡眠
虽然 Java 提供了10个优先级级别,但这些优先级级别需要操作系统的支持。因此应尽量避免直接指定优先级,而应该优先使用常量值来设置优先级,这样能保证程序具有最好的可移植性线程同步
Java 程序允许使用任何对象作为同步监视器,但想一下同步监视器的目的:组织两个线程对同一个共享资源进行并发访问,因此通常推荐使用可能被并发访问的共享资源充当同步监视器同步方法
ReentrantLock 锁具有可重入性,一个线程可以对已被加锁地 ReentrantLock 锁再次加锁,ReentrantLock 对象会维持一个计数器来追踪 lock() 方法地嵌套调用,线程在每次调用 lock() 加锁之后,必须显式调用 unlock() 来释放锁,所以一段被保护的代码可以调用另一个被相同锁保护的方法死锁
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |