多线程
栋感科技
学习,永无止境~
展开
-
线程池模型实现
代码中附注解 public class MyThreadpool { private static class Worker extends Thread{ //创建队列存放线程 private BlockingQueue<Runnable> queue = null; //工作类构造方法传入线程队列 Worker...原创 2020-02-15 13:03:00 · 163 阅读 · 0 评论 -
定时器(闹钟)设计
1.创建MyTimerTask类,定义两个变量,运行时间runAtTime和任务target; 2.构造方法中初始化时间和任务,时间为传入时间参数+系统当前时间; 3.复写Comparable比较执行时间的优先级; private static class MyTimerTask implements Comparable<MyTimerTask>{ long runAtTim...原创 2020-02-10 17:34:13 · 822 阅读 · 1 评论 -
生产者消费者模型
首先实现一个队列 public class ArrayQueue { private int[] array = new int[10]; private int size = 0; private int front = 0; private int rear = 0; public void put(int val){ if(size ...原创 2020-02-09 22:18:54 · 210 阅读 · 0 评论 -
wait()、notify和notifyAll
基本用法 1.object.wait();等待object被唤醒 2.object.notify();随机唤醒一个等待object的线程 3.object.notifyAll();唤醒所有等待object的线程 4.使用wait()方法会抛出InterruptedException 5.使用这三个方法需要在外部对object对象加锁否则会抛出IllegalMonitorStateException...原创 2020-02-09 10:57:21 · 115 阅读 · 0 评论 -
线程vs进程
区别1: 进程是资源分配的最小单位。 线程是cup调度的最小单位,对于系统开销来说,线程比进程的开销小。 区别2: 一个程序可以有多个进程,一个进程可以有多个线程。 区别三: 进程间资源独立,一个进程的多个线程之间共享该进程的资源。 区别四: 线程不能独立运行必须依赖于进程和应用程序的调用。 区别五: 进程会由系统分配地址空间,而线程没有独立的地址空间,共享所属进程的地址空间。 ...原创 2020-02-09 10:36:55 · 108 阅读 · 0 评论