1. 多线程 就是多个异步/并行程序 同时执行 没有先后顺序 1. extends Thread , new 之后使用 2. implements Runnable 后 new Thread(r1) 使用。
2. 线程池 : 有最小执行线程数,和执行最大值 即若为3和10 ,一般任务不多时候线程数为3,如果任务多了即可达到10,若任务超了线程数最大值时
任务会塞到queue 里(queue有最大cache,若达到了最大cache,将对剩下任务不进行处理),等上一个线程空闲时cache里的线程继续被处理。
3. wait 和 notify ,就按上一个线程池,若达到了最大cache 进行wait(必须使用synchronized和锁,不然不生效) ,然后其他地方或者线程进行notifyALl(必须使用synchronized和同一个锁)。
4.synchronized 1.一个是在wait和notify 使用。2.另一个是当多个线程调用某一个共同方法或者代码块时使用 就是被多线程调用的地方使用。锁可以用一个(new Object)。synchronized代码块异步变成了同步。
必须上一个线程处理完即释放锁,才能到下一个线程。
原文:https://www.cnblogs.com/ibus/p/14591503.html