线程冲突整理
来源:互联网 发布:jquery数组删除空元素 编辑:程序博客网 时间:2024/06/16 11:19
package com.binghan.ThreadLifeCycle;/*进程和进城相比就是节约资源,因为多个线程事共享内存的。有的时候线程又称为轻进程。多个进程在访问相同内存的时候有时候会出现访问冲突。例如:在A线程在修改年龄和姓名的时候,B线程在读取年龄和姓名。当在一种特殊的情况下,A线程在刚刚修改完姓名还没有来得及修改年龄时,它已经被调度修改进入到就绪队列,B线程运行时,去读取信息,这时候就容易出现张冠李戴的情况。那么java语言和C语言是怎么解决这个问题的呢?JAVA内置了多线程的支持,Java完全把这种功能放到了java语言之中,是java语言和语法的一部分。C语言需要调用特殊的函数才能完成。注意:敏感资源在线程访问中会出现访问冲突。*/// TODO Auto-generated method stubclass B extends Thread{ public void run() { for(int i = 0;i < 30;i++) { System.out.println("B类:"+this.getName()+i); try{ //sleep()方法容易出现错误,需要去捕捉住这个异常并抛出来。 Thread.sleep(1000); }catch(Exception e) { } } for(int i = 30;i < 60;i++) { System.out.println("B类敏感资源:"+this.getName()+i); try{ //sleep()方法容易出现错误,需要去捕捉住这个异常并抛出来。 Thread.sleep(1000); }catch(Exception e) { } } for(int i = 60;i < 100;i++) { System.out.println("B类:"+this.getName()+i); try{ //sleep()方法容易出现错误,需要去捕捉住这个异常并抛出来。 Thread.sleep(1000); }catch(Exception e) { } } }}class C implements Runnable{/* * 1.因为C类没有继承Thread类,所以没有办法使用.getName()方法。 * 解决办法:我们调用Thread类的静态方法currentThread(). * * * */ public void run() { for(int i = 0;i < 30;i++) { System.out.println("C类:"+Thread.currentThread().getName()+i); try{ //sleep()方法容易出现错误,需要去捕捉住这个异常并抛出来。 Thread.sleep(1000); }catch(Exception e) { } } for(int i = 30;i < 60;i++) { System.out.println("C类敏感资源:"+Thread.currentThread().getName()+i); try{ //sleep()方法容易出现错误,需要去捕捉住这个异常并抛出来。 Thread.sleep(1000); }catch(Exception e) { } } for(int i = 60;i < 100;i++) { System.out.println("C类:"+Thread.currentThread().getName()+i); try{ //sleep()方法容易出现错误,需要去捕捉住这个异常并抛出来。 Thread.sleep(1000); }catch(Exception e) { } } }}public class Thread0002{ public static void main(String[] args) { /* * 现在一共创建了3个线程: * 1.B().start()创建的线程。 * 2.通过创建Thread(new C())来创建的线程。 * 3.这个类的主线程main。 */ new B().start(); //C类不能直接调用Start()方法,因为Start()方法是Thread类独有的。 //如果想要C类可以调用Start()方法,就必须先创建出Thread类,在Thread里面创建C类。 new Thread(new C()).start(); }}
0 0
- 线程冲突整理
- 线程整理
- 线程中的冲突问题
- 线程冲突与解决
- 线程之间的冲突解决
- 线程6:互斥量,解决线程冲突
- Java线程编程整理
- 线程知识复习整理
- 进程、线程 知识点整理
- 进程、线程整理
- TransactionScope线程安全问题整理
- 线程池基础知识整理
- 线程属性整理
- 线程池整理
- JAVA线程知识整理
- 近期资源整理<内含视频,第三方包冲突,pod库冲突,编译冲突>
- 白话并发冲突与线程同步(1)
- 关闭解码线程和gdk_threads_enter冲突问题
- ie6,ie7,ie8 css bug兼容解决记录
- Java泛型
- JSP和servlet之间的通信
- poj3614
- 释放WinPE所占用的U盘空间
- 线程冲突整理
- MySQL中表创建失败的原因之一
- 安卓Activity的四种加载模式
- 【DB】mysql 字段类型
- OC解析XML文件
- iOS 系统声音服务与震动
- DBCP连接池配置参数说明
- windows编译x264
- pc前端开发小结