1,sleep()声明在Thread类中,而且是静态方法; wait()声明在Object类中,而且必须由锁对象调用。 2,sleep()时间达到后恢复; wait()可以设置事件自动恢复,如果没有设置时间必须由notfiy来唤醒; 3,sleep()不会使得这个线程失去锁; wait()会使得当前 ...
分类:
其他好文 时间:
2020-01-25 22:01:24
阅读次数:
104
1、为什么要线程通信 多个线程并发执行时,在默认情况下CPU是随机切换线程的,有时我们希望CPU按照我们的规律执行线程,此时就需要线程之间协调通信。 2、线程通讯方式 线程间通信常用方式如下: l 休眠唤醒方式:Object的wait、notify、notifyAll 和 Condition的awa ...
分类:
编程语言 时间:
2020-01-21 17:47:08
阅读次数:
85
楔子 我们知道golang除了兼顾了开发速度和运行效率之外,最大的亮点就是在语言层面原生支持并发,也就是通过所谓的goroutine。不过既然是并发,那么就势必会面临很多问题。比如:资源竞争,多个goroutine同时访问一个资源会发生竞争从而产生意想不到的结果,那么这时候我们会通过加锁来解决;主g ...
分类:
其他好文 时间:
2020-01-21 16:23:18
阅读次数:
75
Object类是Java中所有类的根父类, Java中的类要么直接继承Object, 要么间接继承Object类 Java中类的继承是可传递的, Object类中定义的方法,所有的类都能继承到 | Modifier and Type | Method and Description | | | | ...
分类:
其他好文 时间:
2020-01-20 21:18:14
阅读次数:
99
介绍 是`j.u.c`包下提供的一个接口。 可以翻译成 条件对象,其作用是线程先等待,当外部满足某一条件时,在通过条件对象唤醒等待的线程。 就是通过 实现的。 先看一下 接口提供了哪些方法: 接口主要提供了两类方法——让线程等待的方法(await()等)和唤醒线程的方法(signal())。 内部提 ...
分类:
其他好文 时间:
2020-01-20 20:54:22
阅读次数:
93
控制台输出: 程序进程执行完毕,进程正常结束。 如果把代码中注释掉的部分放开,故意让new出来的线程跑的比main线程慢的话,控制台输出: 此时由于最后Thread-0线程一直处于await没有其他线程去唤醒了,程序进程会一直阻塞中。 最后,看一下lock.newCondition()的说明: Co ...
分类:
编程语言 时间:
2020-01-20 20:38:10
阅读次数:
82
1. 在win10中,将程序固定在任务栏,然后win+数字,例如win+1就会唤醒或者打开任务栏第一个应用 https://www.zhihu.com/question/40466330 可以看看 https://support.microsoft.com/zh-cn/help/12445/wind ...
线程的状态 首先了解一下什么是线程的状态,线程状态就是当线程被创建(new),并且启动(start)后,它不是一启动就进入了执行状态(run),也不是一直都处于执行状态。 这里说一下Java 的Thread类里面有一个State方法,这个方法里面涵盖了6种线程的状态,如下: public enum ...
分类:
编程语言 时间:
2020-01-20 09:49:55
阅读次数:
106
Linux下的进程管理1.什么是进程?程序是静态的文件进程是运行中的程序的一个副本进程存在生命周期(准备期,运行期,终止期)2.进程状态状态定义R(TASK_RUNNING)、可执行状态(RUNNING,READY)running:正在被处理ready:在排队,cpu处理进程个数有限S(TASK_INTERRUPTIBLE)可唤醒状态:在cpu上使用的时间超时,此时被打入休眠状态,随着程序的调用会
分类:
系统相关 时间:
2020-01-19 17:45:43
阅读次数:
139
概述 CyclicBarrier是一个同步辅助类,它允许一组线程相互等待,直到达到某个公共屏障点。并且在释放等待线程之后,CyclicBarrier是可以重复使用的。 简单使用 下面这段代码利用了CyclicBarrier来使得线程创建后相互等待,直到所有的线程都准备好,以此来使多个线程同时执行。 ...
分类:
其他好文 时间:
2020-01-17 18:57:05
阅读次数:
75