随笔分类 - 线程
摘要:线程总结: 测试代码: //回顾总结线程的创建 public class ThreadNew { public static void main(String[] args) { new MyThread1().start(); new Thread(new MyThread2()).sta
阅读全文
摘要:线程通信 管程法测试代码: //测试:生产者消费者模型 >利用缓冲区解决:管程法 //生产者、消费者、产品、缓冲区 public class TestPC { public static void main(String[] args) { SynContainer container =
阅读全文
摘要:死锁 多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有"两个以上对象的锁"时,就可能会发生“死锁”的问题。 测试代码: //死锁:多个线程互相抱着对方需要的资源,然后形成僵持 public cla
阅读全文
摘要:线程同步 多个线程操作同一个资源。 并发:同一个对象被多个线程同时操作。 由于同一进程的多个线程共享同一块存储空间,带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synchronized,当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用后释
阅读全文
摘要:线程的优先级 线程优先级 Java提供一个线程调度器来来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。 线程的优先级用数字表示,范围从1~10 Thread.MIN_PRIORITY=1; Thread.MAX_PRIORITY=10; Thread.NOR
阅读全文
摘要:线程状态 创建线程: 创建就进入新生状态 就绪状态: 调用start方法,线程立即进入就绪状态 运行状态: cpu调度 阻塞状态: 调用sleep,wait或同步锁进入阻塞状态 死亡状态: 线程中断或者结束,一旦进入死亡状态,就不能再次启动。 停止线程 (stop) 不建议使用jdk提供的方法停止线
阅读全文
摘要:模拟龟兔赛跑的测试代码: //模拟龟兔赛跑 public class Race implements Runnable { //胜利者 private static String winner; @Override public void run() { for (int i = 0; i
阅读全文
摘要:Process与Thread 说起进程,就不得不说程序 。程序是指令和数据的有序集合,其本身没有运行含义,是一个静态的概念。 进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。 通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU
阅读全文