多线程对同一个对象操作

2018-06-18 00:37:54来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

多线程实现的两种方式:

  继承Thread类

  实现Runnable接口

这两种方式都必须重写run()方法。

当多线程对同一个对象操作时,必须实现Runnable接口,而不能继承Thread类。因为继承Thread类实现多线程时,操作的是不同的对象。

1 Runnable r=new RunnableImpl();
2 Thread t1=new Thread(r);
3 Thread t2=new Thread(r);
4 t1.start();
5 t2.start();
View Code

两个线程传同一个对象,相当于这两个线程对同一个对象进行操作。

注意:多线程对同一个对象操作的时候一定要加锁synchronized,同时传一个锁旗标。

   加锁时,原则上要双重检查。

   锁旗标对同一个对象有用,如果是两个对象,则这两个对象分别有自己的锁旗标,此时锁旗标就会失效。

   synchronized不仅可以加在代码块上,还可以加在方法上。当加在方法上时,锁旗标是this,谁调用这个方法,this就是谁,只要是同一个对象就行·。

   synchronized提高了安全性,降低了性能。

 

若有错误之处,欢迎指正。谢谢!

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java面试大纲-java面试该做哪些准备,java开发达到这样的水平可

下一篇:设计模式-建造者模式