实例packagemainimport("fmt""os""os/signal""sync""syscall""time")funcworker(stop<-chanbool){for{select{case<-stop:fmt.Println("exit")returndefault:fmt.Println("running...")time.Sleep(3)}}}funcmain(
分类:
编程语言 时间:
2018-06-18 17:13:44
阅读次数:
1472
DelayQueue 是一中阻塞队列,需要实现接口Delayed定义的方法.做下使用记录和心得吧, 源码部分:取值的逻辑相似 超时加排序机制 ...
分类:
其他好文 时间:
2018-06-17 19:05:42
阅读次数:
161
1,notify的同步块完了,才会运行wait的同步块 2,interrupt()不是静态方法,用在wait的线程上会有InteruptException,锁也会被释放 3,notify()唤醒的线程是随机的,以前不知道唤醒哪个,了解到notify是object对象有的,哪个用相关的对象锁了,就会解 ...
分类:
编程语言 时间:
2018-06-14 01:07:26
阅读次数:
175
1、问题 1.1 产生原因 多个线程调用同一个变量的时候,因为一个时间点只有一个线程在跑,就会产生一些线程改变了这个变量,但是其它的线程却还是根据之前的变量在跑 1.2 具体问题 两个卖票的线程,票不为0时进行买票,但是当两个线程都进行买票的方法中时,一个线程已经把票卖完了,但是另一个线程的卖票程序 ...
分类:
编程语言 时间:
2018-06-12 22:35:19
阅读次数:
205
虚拟机中的线程状态有六种,定义在Thread.State(): t1.getState():查看当前线程状态。 1、新建状态NEW,比如"Thread t = new Thread() 2、可运行状态RUNNABLE,调用start()方法 3、阻塞BLOCKED,正在等待监视器锁,以便进入一个同步 ...
分类:
编程语言 时间:
2018-06-08 21:55:18
阅读次数:
195
第九章 Thread 多线程 *线程创建ThreadInfo:常用方法t.getId();t.getName();t.currentThread();t.isAlive();t.isDaemon();t.getPriority();t.isInterrupted();t.interrupt();t. ...
分类:
编程语言 时间:
2018-06-08 00:58:00
阅读次数:
292
关闭“线程池” shutdown()的源码如下: ...
分类:
编程语言 时间:
2018-06-05 21:21:13
阅读次数:
194
并行和串行执行 总结:线程有创建和上下文切换的开销。 ...
分类:
其他好文 时间:
2018-06-03 14:21:18
阅读次数:
163
源码: 执行结果: 特别留意最后一行里的ready,值为 true。while进入循环的条件明明是ready = false,但是最后一个输出结果怎么是true? ps. 不是每次输出结果都会像上面那样。 原因分析: while循环最后1秒的时候,主线程里的, ready = true; 这行代码先 ...
分类:
其他好文 时间:
2018-06-03 00:01:33
阅读次数:
169
本文主要参考FFmpeg/libavformat/hls.c,对其代码逻辑做了简单收集及整理。整体来说,本文总结了ffmpeg中hls_demxuer的实现逻辑,希望对读者有所帮助。 HLS协议中还涉及一些比较细节的部分,比如subtitle、rendetion、group、init_sectio... ...
分类:
其他好文 时间:
2018-05-31 23:08:48
阅读次数:
2907