java多线程中,共享数据变量 为什么一定要定义private权限

如题所述

java是面向对象语言,一切成员都会封装在一个类中,定义成private是为了更好地隐藏,对外暴露的是setter和getter方法,所以可以通过setter设置值,getter来取值,达到模块隐藏的目的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-22
publicclassThreadPlusAndMinus{privateintcount;privateintisRun;publicstaticvoidmain(String[]args){ThreadPlusAndMinustpm=newThreadPlusAndMinus();Threadt1=newThread(tpm.newMyThread(true));Threadt2=newThread(tpm.newMyThread(true));Threadt3=newThread(tpm.newMyThread(false));Threadt4=newThread(tpm.newMyThread(false));t1.start();t2.start();t3.start();t4.start();}privateclassMyThreadimplementsRunnable{privatebooleanisPlus;publicMyThread(booleanisPlus){this.isPlus=isPlus;}@Overridepublicvoidrun(){while(isRun++<100){if(isPlus){count++;}else{count--;}try{Thread.sleep(10);}catch(InterruptedExceptionex){Logger.getLogger(ThreadPlusAndMinus.class.getName()).log(Level.SEVERE,null,ex);}System.out.println(Thread.currentThread().getName()+":"+count);}}}}run方法不能加synchronized,加了就等于是单线程了。所以线程1必须等线程0完了才运行,另外每个线程预算完毕,释放cpu,让其他线程进来

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网