×

线程通信 java 线程

java中怎么实现线程通信?java中List怎么用,说下过程

admin admin 发表于2022-05-02 13:59:35 浏览134 评论0

抢沙发发表评论

java中怎么实现线程通信

线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。Object类中相关的方法有两个notify方法和三个wait方法:因为wait和notify方法定义在Object类中,因此会被所有的类所继承。这些方法都是final的,即它们都是不能被重写的,不能通过子类覆写去改变它们的行为。wait()方法wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法。当前的线程必须拥有当前对象的monitor,也即lock,就是锁。线程调用wait()方法,释放它对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notify()或者notifyAll()方法),这样它才能重新获得锁的拥有权和恢复执行。要确保调用wait()方法的时候拥有锁,即,wait()方法的调用必须放在synchronized方法或synchronized块中。

java中List怎么用,说下过程

Leilei=(Lei)list.get(i);//这个语句本身没有错的,不过如果你要list里面装的不是Lei类形或不是他的子类会抛classcastexception;你可以用泛形的Listlist=newLinkedList();这样list就只能addLei类型的对象,list.get(inti)获得的也是Lei类型这样就不用转换。注意一下,如果你用的是LinkedList的话不要用for循环来遍历List而要用Iterator,不然的话效率会很低的。

什么是java多线程中的死锁

产生死锁的条件:

1.有至少一个资源不能共享2.至少有一个任务必须持有一个资源并且等待获取另一个被别的任务持有的资源3.资源不能任务抢占4.必须有循环等待

只要打破其中一个条件就不会产生死锁,

Java多线程死锁教程: