你必须知道什么是多线程,开启多线程后,代码就会分好几个线程执行了,每个线程都是独立的!
但你的对象只有一个,那么那些会改变的东西(变量之类);也就是共享资源就会被多个线程用到;
这样一来很可能一个变量遭到两个线程的同时访问;在某些情况下,就会出错!不按我们想的那样走!
所以用synchronized(){}把可能出错的代码包起来。只允许一个线程访问!避免出错作者: 韩伟 时间: 2012-7-18 13:58
TxtThread tt = new TxtThread();
new Thread(tt).start()
new Thread(tt).start();
new Thread(tt).start();
new Thread(tt).start();
LZ 说的不错,TxtThread是一个类,每创建一个它的对象就会拥有它的属性,因此num,str不是共享的,不存在访问冲突的情况 ,
但是,看看这段儿代码,LZ可是只new了一个对象,其他的线程调用的都是这一个对象。