A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shaoboguanzi 中级黑马   /  2015-1-22 09:45  /  921 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程常见的问题?
1,多线程存在安全问?
原因:多个线程操作同一个共享数据时,一个线程对共享资源中多条语句执行时还没有执行完毕,另外一个线程参与进来。导致共享数据的错误。
2,解决办法:对操作共享数据的语句只能让一个线程执行过程中,其他线程不能执行。
    3,同步代码块:需要被同步的代码。synchronized(对象obj)
Object obj=new Object();synchronized(对象obj)
代码:
synchronized(obj)
{
if(tic>0)
{
System.out.println(Thread.currentThread().getName()+"...sale"+(tic--));
}
}
三、如何找到问题?
1,明确哪些代码是多线程运行代码。
public void run()
{}
2,明确共享数据(一般情况下成员都是共享数据)
private int tic=100;
3,明确多线程运行代码中哪些语句是操作共享数据的。(成员中被多个语句操作的成员)
四、注意:
try{ Thread.sleep(12);}catch(Exception e){};
不能throws抛出异常,因为来自接口中的方法。

4 个回复

倒序浏览
学习学习.....~~赞一个
回复 使用道具 举报
赞一个!!
回复 使用道具 举报
BEIKOU 来自手机 中级黑马 2015-2-13 07:18:06
板凳
来顶一下
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马