多线程实际开发中的使用

场景一:线程1执行完再执行线程2 @Testpublic void test4() {    try {        Runnable runnable = () -> {            try {                System.out.println();                for (int i = 0; i < 10; i++) {         &...

read more..

多线程中的死锁,活锁,饥饿,无锁以及关闭多线程方法

多线程中的死锁,活锁,饥饿,无锁 前两天面试被问到死锁,活锁,饥饿。问到饥饿当时懵了,啥是饥饿啊。。。之后有时间赶紧查了查,这里作下总结。 死锁 死锁是两个或者两个以上的线程抢同一个资源造成的互相等待的现象。 活锁 活锁是两个线程都很友好,没有互相抢夺资源,而是互相谦让,你让我,我让你,然后因为谦让造成的等待现象。 饥饿 饥饿和多线程的优先级有关,线程在执行的时候,优先级高的线程一...

read more..

线程池、Lambda

线程通信概念 等待唤醒机制        public void wait():无限等待        public void wait(long):定时等待        public void notify():通知一个人结束等待        public void notifyAll():通知所有人结束等待        单生产者单消费者:n...

read more..

多线程

Java中多线程运行原理        流程图:        内存图:栈内存线程独立,堆内存线程共享。 继承类的方式创建多线程        1. 定义一个类,然后继承Thread        2. 覆盖重写run方法        3. 调用start启动线程   实现接口的方式创建...

read more..