线程学习之--传统线程互斥
来源:互联网 发布:企业淘宝可以提现到 编辑:程序博客网 时间:2024/05/09 09:44
//线程同步
publicstaticvoidmain(String[] args) {
newSync().show();
}
publicvoidshow(){
final Infoinfo=new Info();
//创建一个线程
newThread(new Runnable(){
publicvoidrun() {
while(true){
try {
Thread.sleep(10);
} catch(InterruptedException e) {
e.printStackTrace();
}
info.outname1("wangyong");
}
}
}).start();
//在创建一个线程
newThread(new Runnable(){
publicvoidrun() {
while(true){
try {
Thread.sleep(10);
} catch(InterruptedException e) {
e.printStackTrace();
}
info.outname1("zhangsan");
}
}
}).start();
}
classInfo{
publicvoidoutname1(String name){
intlen=name.length();
for(inti=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
}
以上的实例可以看出,线程不同步。
该如何修改呢?
packagedemo;
publicclass Sync{
/**
*@paramargs
*/
//线程同步
publicstaticvoidmain(String[] args) {
newSync().show();
}
publicvoidshow(){
final Infoinfo=new Info();
//创建一个线程
newThread(new Runnable(){
publicvoidrun() {
while(true){
try {
Thread.sleep(10);
} catch(InterruptedException e) {
e.printStackTrace();
}
info.outname1("wangyong");
}
}
}).start();
//在创建一个线程
newThread(new Runnable(){
publicvoidrun() {
while(true){
try {
Thread.sleep(100);
} catch(InterruptedException e) {
e.printStackTrace();
}
info.outname3("zhangsan");
}
}
}).start();
}
staticclassInfo{
//方法一
publicvoidoutname1(String name){
intlen=name.length();
synchronized(Info.class){
for(inti=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
//方法二
publicsynchronizedvoidoutname2(String name){
intlen=name.length();
for(inti=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
//方法二
publicstaticsynchronizedvoidoutname3(String name){
intlen=name.length();
for(inti=0;i<len;i++){
System.out.print(name.charAt(i));
}
System.out.println();
}
}
}
- 线程学习之--传统线程互斥
- 传统线程互斥技术
- 传统线程的互斥
- 传统线程互斥技术
- 传统线程互斥synchronized
- 线程学习之线程互斥
- 多线程总结第三篇之传统线程互斥技术
- 传统线程互斥技术 ------ 实例
- 传统线程互斥技术----实现
- 传统线程互斥技术(三)
- 3-传统线程互斥技术
- 传统线程互斥技术Synchronized01
- 传统线程互斥技术Synchronized 02
- 三:java中传统线程互斥
- 传统线程互斥技术(传统的sychronized)
- 线程学习之--传统的线程技术
- 张孝祥java多线程视频笔记----传统线程互斥技术
- 多线程03_张孝祥-传统线程互斥技术
- easyUI DateBox可以返回string和date两种值
- ScrollView以及TextView和对应链接
- 磁盘存储
- linux下练习 c++ 函数模版例子
- oracle 数据字典 表约束
- 线程学习之--传统线程互斥
- 民航专家称应对恐吓航空公司者追天价赔偿-航班-诈弹-恐吓航空公司
- ADF11g-019:ADF实现动态添加表单
- hdu - 4305 - Lightning 生成树计数
- 第七周任务 3-4
- 在导航条的下方加上阴影 navgationbar
- 【NOSQL】非关系型数据库MongoDB
- 我用ajax的问题,12030
- php学习之路-----------判断输入的数据是否为数字