黑马程序员技术交流社区
标题:
多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
[打印本页]
作者:
郭炜
时间:
2012-3-14 11:21
标题:
多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
作者:
江远云
时间:
2012-3-16 20:32
实现线程有两种方法:继承Thread类或者实现Runnable接口
实现同步也有两种方法:一种是用同步方法,一种是用同步块
同步方法就是在方法返回类型后面加上synchronized, 比如:public void synchronized add(){...}
同步块就是直接写:synchronized (这里写需要同步的对象){...}
作者:
李创
时间:
2012-3-16 21:59
//继承方法
class Testextends extends Thread
{
private int x=10;
public void run()
{
while(x>0)
{
System.out.println(Thread.currentThread().getName()+" extends: "+x--);
}
}
}
//实现方法
class Testimplemets implements Runnable
{
private int y=10;
public void run()
{
while(y>0)
{
System.out.println(Thread.currentThread().getName()+" implements : "+y--);
}
}
}
同步用synchronized() 还有Lock类也可以实现
作者:
李飞
时间:
2012-3-17 00:20
其实就是讲共享数据加锁,锁机制
1.同步代码块
把需要被一个线程一次执行完的代码存储到同步代码块中,锁可以使任意对象
synchronized(对象){
code…;
}
2.同步函数
让函数具有同步性,用synchronized修饰方法,锁只能是固定对象this
如果想让同步函数和同步代码块之间实现同步,同步代码块的锁要定位this
是否同步的前提:
1.两个或是两个以上线程
2.多个线程使用同一个锁
同步的缺点:效率低,当出现同步嵌套的时候会发生死锁
同步函数使用的锁是this;但是,静态同步函数使用的锁是该类对应的字节码文件对象:类名.class
1.synchronized,锁是隐式的
上面已经介绍
2.Lock接口,锁是显式的
一个锁可以对应多组监视器对象,这样就可以实现只唤醒对方线程,而不需要唤醒所有的线程。
由两个方法完成:lock()获取锁;unlock()释放锁
锁控制同步,监视器用于同步中对象的操作
作者:
a504079589
时间:
2012-3-17 02:11
多线程有两种实现方法, 分别是继承Thread类和实现Runnable接口 ;
同步的实现方面有两种, 分别是synchronized和wait与notify;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2