零EVA

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2017年6月23日

摘要: 优先级代表着抢资源的频率 所有线程默认优先级是5 yield()临时释放线程的执行权 1 class Demo implements Runnable 2 { 3 public void run() 4 { 5 for(int x = 0; x < 70; x++) 6 { 7 System.out 阅读全文
posted @ 2017-06-23 21:58 零EVA 阅读(187) 评论(0) 推荐(0) 编辑

摘要: stop方法已经过时 如何停止线程? 只有一种,run方法结束 开始多线程运行,运行代码通常是循环结构 只要控制住循环,就可以让run方法结束,也就是线程结束 特殊情况 当线程处于冻结状态 就不会读取到标记,那么线程就不会结束 当没有指定的方式让冻结的线程恢复到运行状态时,这时就需要对冻结状态进行清 阅读全文
posted @ 2017-06-23 19:53 零EVA 阅读(458) 评论(0) 推荐(0) 编辑

摘要: 生产者消费者 1 class Resource 2 { 3 private String name; 4 private int count = 1; 5 private boolean flag = false; 6 7 public synchronized void set(String na 阅读全文
posted @ 2017-06-23 18:36 零EVA 阅读(141) 评论(0) 推荐(0) 编辑

2017年6月20日

摘要: 线程间通讯: 其实就是多个线程在操作同一个资源, 就是操作的动作不同 1 class Res 2 { 3 String name; 4 String sex; 5 } 6 7 class Input implements Runnable 8 { 9 private Res r; 10 Object 阅读全文
posted @ 2017-06-20 21:18 零EVA 阅读(131) 评论(0) 推荐(0) 编辑

摘要: 如何找问题 1 明确哪些代码是多线程运行代码 2 明确共享数据 3 明确多线程运行代码中哪些语句操作共享数据 同步函数用的哪一个锁? 函数需要被对象调用,那么函数都有一个所属对象的引用,就是this 所以同步函数使用的锁是this 如果同步函数被静态修饰后,使用的锁是什么呢? 通过验证,不是this 阅读全文
posted @ 2017-06-20 17:52 零EVA 阅读(150) 评论(0) 推荐(0) 编辑

2017年6月19日

摘要: 多线程的运行出现了安全问题 原因: 当多条语句在操作同一个线程数据的时候,一个线程对多条语句只执行了一部分,还没执行完 另一个线程参与进来执行,导致共享数据的错误 解决办法: 对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其它线程不可以参与执行。 JAVA对于多线程安全问题,提供了 阅读全文
posted @ 2017-06-19 18:00 零EVA 阅读(127) 评论(0) 推荐(0) 编辑

摘要: 线程都有自己默认的名称 Thread-编号 getName()方法获取线程名称 setName(String name)方法设置线程名称,或者调用Thread的构造函数 Thread.currentThread()获取当前的线程 1 class Test extends Thread 2 { 3 / 阅读全文
posted @ 2017-06-19 14:59 零EVA 阅读(136) 评论(0) 推荐(0) 编辑

2017年6月14日

摘要: 进程:是一个正在执行中的程序 每一个进程执行都有一个执行的顺序,该顺序是一个执行路径,或者叫控制单元 线程:就是进程中的一个独立的控制单元 线程在控制着进程的执行 一个进程中至少有一个线程 JAVA VM启动的时候会有一个进程java.exe 该进程中至少有一个线程在负责java程序的执行 而且这个 阅读全文
posted @ 2017-06-14 22:31 零EVA 阅读(241) 评论(0) 推荐(0) 编辑

摘要: 对类文件进行分类管理 给类提供多层命名空间 写在程序文件代;码的第一行 1 package pack; 2 class PackageDemo 3 { 4 public static void main(String[] args) 5 { 6 System.out.println("Hello P 阅读全文
posted @ 2017-06-14 19:07 零EVA 阅读(222) 评论(0) 推荐(0) 编辑

摘要: 异常在父子类覆盖中的体现: 1 子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类,或者不抛出异常 2 如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集 3 如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出 阅读全文
posted @ 2017-06-14 16:56 零EVA 阅读(196) 评论(0) 推荐(0) 编辑