经典笔试题: 1、自定义容器,提供新增元素(add)和获取元素数量(size)方法。2、启动两个线程。线程1向容器中新增10个数据。线程2监听容器元素数量,当容器元素数量为5时,线程2输出信息并终止。 package com.gaopeng.programming.test2; import jav ...
分类:
编程语言 时间:
2020-02-05 11:49:43
阅读次数:
94
1、为什么要线程通信 多个线程并发执行时,在默认情况下CPU是随机切换线程的,有时我们希望CPU按照我们的规律执行线程,此时就需要线程之间协调通信。 2、线程通讯方式 线程间通信常用方式如下: l 休眠唤醒方式:Object的wait、notify、notifyAll 和 Condition的awa ...
分类:
编程语言 时间:
2020-01-21 17:47:08
阅读次数:
85
目录 Java 线程基础 一、线程简介 二、线程基本用法 三、线程间通信 四、线程状态 参考资料 Java 线程基础 📦 本文以及示例源码已归档在 javacore 一、线程简介 什么是进程 什么是线程 进程和线程的区别 二、线程基本用法 创建线程 线程休眠 线程礼让 终止线程 守护线程 FAQ ...
分类:
编程语言 时间:
2020-01-16 14:13:44
阅读次数:
87
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。 本文涉及到的知识点: thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBar ...
分类:
编程语言 时间:
2020-01-16 10:50:47
阅读次数:
78
线程间通信常用方式如下: l 休眠唤醒方式: Object的wait、notify、notifyAll Condition的await、signal、signalAll l CountDownLatch:用于某个线程A等待若干个其他线程执行完之后,它才执行 l CyclicBarrier:一组线程等 ...
分类:
编程语言 时间:
2020-01-13 18:12:14
阅读次数:
82
方法介绍: boolean await() 阻塞线程 直至被唤醒boolean await(long time, TimeUnit unit) 阻塞线程 超时自动唤醒void signal() 唤醒一个await线程void signalAll() 唤醒所有await线程 场景举例: 班级组织郊游, ...
分类:
编程语言 时间:
2020-01-10 10:46:12
阅读次数:
92
基本前提知识: 一:Object/wait(), notify(), notifyAll() 1:wait() 方法暂停当前线程,并立即释放对象锁; 2:notify()/notifyAll() 方法唤醒其他等待该对象锁的线程,并在执行完同步代码块中的后续步骤后,释放对象锁 3:notify()和n ...
分类:
编程语言 时间:
2019-12-26 19:42:40
阅读次数:
94
参考代码: package aaa; public class Goods { private String name; private String brand; boolean isFlag; public String getName() { return name; } public voi ...
分类:
编程语言 时间:
2019-12-25 16:02:22
阅读次数:
74
wait() 方法是线程间通信的方法之一 必须在 synchronized 方法或 synchronized 修饰的代码块中使用,否则会抛出 IllegalMonitorStateException 只能在加锁的对象调用 wait() 方法 加锁的对象调用 wait() 方法后,线程进入等待状态,直 ...
分类:
其他好文 时间:
2019-12-17 15:08:08
阅读次数:
126
线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 为什么要处理线程间通信: 多个线程并发执行时, 在默 ...
分类:
编程语言 时间:
2019-12-17 13:10:14
阅读次数:
103