黑马程序员技术交流社区

标题: 多线程的时候如何保证线程安全? [打印本页]

作者: 何志超    时间: 2015-5-9 19:33
标题: 多线程的时候如何保证线程安全?
`多线程的时候如何保证线程安全?

作者: Troy-Fu    时间: 2015-5-9 19:33
1.将整个类加锁 (代码为synchronized(this))
2.定义一个object,访问某些相关变量是,对该对象加锁(代码为synchronized(lockobj))。
作者: Troy-Fu    时间: 2015-5-9 20:58

1.将整个类加锁 (代码为synchronized(this))
2.定义一个object,访问某些相关变量是,对该对象加锁(代码为synchronized(lockobj))。
作者: dzzgml    时间: 2015-5-9 21:57
可以用同步代码块或者同步函数
作者: zww594509950    时间: 2015-5-9 23:12
保证多线程安全需要使用锁,在同步里包括同步代码块,同步非静态函数,以及同步非静态函数,而如果同时使用时就需要彻底理解每个锁的不同,既要防止锁不住,又要防止死锁。
同步代码块中的锁可以自定义,同步非静态函数中是this,同步静态函数是本类的字节码文件对象。
作者: 凉仁日记    时间: 2015-5-9 23:20
必须是用锁,同步代码块,但是注意别锁死,可以多看看老师的视频和代码,比较详细的
作者: 过路人    时间: 2015-5-9 23:47
将run()方法中被共同执行的代码块用同一个对象锁lock(obj)锁住,obj是指多个线程共享的锁
作者: yufuhong    时间: 2015-5-10 10:30
线程安全问题的解决方案:
                A:同步代码块
                        synchronized(锁对象)
                        {
                                被同步的代码
                        }
                B:同步方法
                        把synchronized加在方法上。

作者: ytooo00    时间: 2015-5-10 16:59
同步代码块或同步函数
作者: liang12juan    时间: 2015-5-10 20:19
给多个线程共同执行的代码加锁:synchronized(对象){需要被同步的代码块}
作者: 何志超    时间: 2015-5-10 22:18
yufuhong 发表于 2015-5-10 10:30
线程安全问题的解决方案:
                A:同步代码块
                        synchronized(锁对象)

还有别的方法吗?
作者: 嘎嘎鸭子    时间: 2015-5-15 13:47
要么是同步代码块,要么是同步函数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2