典型数据不同步造成的错误(1)
来源:互联网 发布:映射网络驱动器端口号 编辑:程序博客网 时间:2024/06/04 18:51
class sharedata
{
public static String szdata="";
}//共享数据块
class threaddemo extends Thread
{
private sharedata oshare;
threaddemo()
{}
threaddemo(String szname,sharedata oshare)
{
super(szname);
this.oshare=oshare;
}
public void run()
{
for(int i=0;i<5;i++)
{if(this.getName().equals("Thread1"))
{oshare.szdata="这是第1个线程";
try{
Thread.sleep((int)Math.random()*1000);//休眠就是让出当前线程的CPU的调度权限,然后供替他别的线程使用,可以没有
}
catch(InterruptedException e)
{}
System.out.println(this.getName()+":"+oshare.szdata);
}
else if(this.getName().equals("Thread2"))
{
oshare.szdata="这是第2个线程";
try{
Thread.sleep((int)Math.random()*1000);//休眠就是让出当前线程的CPU的调度权限,然后供替他别的线程使用,可以没有
}
catch(InterruptedException e)
{}
System.out.println(this.getName()+":"+oshare.szdata);
}
}
}
}
public class nosynchornized {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
sharedata oshare=new sharedata();
threaddemo th1=new threaddemo("Thread1",oshare);
threaddemo th2=new threaddemo("Thread2",oshare);
th1.start();
th2.start();
}
}
结果为:
Thread2:这是第2个线程
Thread1:这是第2个线程
Thread2:这是第2个线程
Thread1:这是第2个线程
Thread2:这是第1个线程
Thread1:这是第2个线程
Thread2:这是第1个线程
Thread1:这是第2个线程
Thread2:这是第1个线程
Thread1:这是第1个线程
//可以利用synchornized来使数据同步,请看下一篇
- 典型数据不同步造成的错误(1)
- CSDN 个人空间 数据独立问题 造成 昵称数据不同步
- IIS中IWAM_用户密码不同步造成500错误解决方法
- 1.7.7停止线程(stop停止造成数据不同步)
- hbase中服务器时间不同步造成的regionserver启动失败
- hbase中服务器时间不同步造成的regionserver启动失败
- Linux下时间戳不同步造成编译警告的解决办法
- RAC时间不同步引起的错误
- 典型的逻辑错误!
- 典型的段错误
- TimesTen 自动刷新的 cachegroup 数据不同步
- 关于gluster数据不同步的处理
- down后数据不同步的实验
- 多线程环境下不安全的消息队列存取---线程不同步会造成隐患
- rowscopy 使用造成的错误
- 一例析构顺序造成的错误
- 一个引号造成的错误
- 不细心造成的错误
- solr使用总结
- 在Windows中编译Nginx源码
- VC下完全或部分编译boost
- 网页制作中,用CSS将文字上移或者下称的方法
- H.264 RTP payload 格式 .
- 典型数据不同步造成的错误(1)
- org.hibernate.StaleStateException: Batch update returned unexpected row cou...
- Note C/C++
- 查看JVM内存状态的工具使用
- 7个免费的在线音频编辑网站推荐
- C#访问Access表结构,查询表列信息
- C++ Boost Assign 文档(翻译) (一)
- Java实现调用WebService的客户端程序
- 国家语言代码