线程安全问题是怎么产生的?怎么解决?

  • 发布时间:2017-06-15 13:53:05,加入时间:2017年05月18日(距今2918天)
  • 地址:中国»河南»郑州:郑州市金水区文化路82号硅谷广场B座
  • 公司:郑州尚学堂, 用户等级:普通会员
  • 联系:张老师,手机:18729211698 电话:0371-58500958

先作判断:

怎么产生的­

a,程序是否为多线程

b,是否有共享数据

c,是否有多条语句对共享数据进行操作

解决方案:

把c步骤进行管理。

1),同步代码块

格式:

synchronized(对象){

      需要被锁的代码

注意:对象可以是任意对象,但同步的对象必须一致。

2),同步方法

把synchronized添加到方法声明上。

注意:此时同步的是this对象。

2,静态方法的锁是谁­

当前类的字节码文件对象。

3,run()与start()的区别­

run()仅仅是普通的调用

start()做了两件事:启动线程,调用run()

4,sleep()与wait()的区别­

sleep():表示睡眠,必须指定睡眠时间,不释放锁。

wait():表示等待,可以不指定睡眠时间,必须释放锁。

郑洲尚学堂
6月Java课程班开课时间郑州文化路Java班

Java班:2017年06月20日
全程就业课程时长:四个半月

Android班:2017年06月20日
全程就业课程时长:四个半月

联系我时请说明来自志趣网,谢谢!

免责申明:志趣网所展示的信息由用户自行提供,其真实性、合法性、准确性由信息发布人负责。使用本网站的所有用户须接受并遵守法律法规。志趣网不提供任何保证,并不承担任何法律责任。 志趣网建议您交易小心谨慎。