随笔分类 - 并发编程
摘要:Java每个对象都有一把锁,当前进程使用对象锁1,没有释放该锁,又想要去获取另一把对象锁2,而对象锁2被另外一个线程持有,没有释放,这就很容易出现死锁 1.死锁实例 分析:线程1持有object1的锁,同时又想去获取object2的锁,而此时线程2又持有object2的锁没有释放,又想去获取obje
阅读全文
摘要:1.Java线程状态 1.1 线程主要状态 ①初始(NEW):新创建了一个线程对象,但还没有调用start()方法。②运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的成为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start
阅读全文
摘要:实现定时任务线程有如下三种方式: ①普通线程死循环 ②使用定时器timer ③使用定时调度线程池ScheduledExecutorService
阅读全文
摘要:线程之间需要一些协调通信,来共同完成一件任务。Java多线程中,线程之间通信最常用的两个方法是wait()与notify() 使用wait()与notify()实现线程间的通信,需注意: ①wait()与notify()必须配合synochnized关键字使用 ②wait()会释放锁,notify(
阅读全文