为了得到周期一定的时序,我们总是用定时器产生,C51中最常见的用法就是: void tim0_IRQHandler(void) interrupt 1 { static unsigned int cnt = 0; TH0 = XX; TL0 = XX; cnt++; if((cnt %10) == ...
分类:
其他好文 时间:
2017-05-06 23:00:22
阅读次数:
185
线程中断 线程中断涉及到三个方法,如下: interrupt()方法用于中断线程,通常的理解来看,只要某个线程启动后,调用了该方法,则该线程不能继续执行了,来看个小例子: 运行后,我们发现,线程t一直在执行,没有被中断。 其实interrupt()方法并不是中断线程的执行,而是为调用该方法的线程对象 ...
分类:
编程语言 时间:
2017-05-06 15:49:45
阅读次数:
223
1、停止线程(interrupt) 1.interrupt标记线程为中断状态 2.interrupted测试当前线程是否中断,并清除中断标记为false 3.isInterrupted测试线程是否中断 2、synchronize和volatile的区别 1.保证实例变量在多个线程间的可见性,不保证原 ...
分类:
编程语言 时间:
2017-05-06 14:15:46
阅读次数:
239
用什么关键字修饰同步方法 ? 用synchronized关键字修饰同步方法 同步有几种实现方法,都是什么?分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所持有的对象的lock。sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调 ...
分类:
编程语言 时间:
2017-05-06 10:10:33
阅读次数:
169
工作忙,学习忙,但还是得随便写点。 st_vio,顾名思义,应该是指virtual IO,即虚拟IO。根据代码里的注释,这个是一个高度抽象的进程间通信接口结构体,mysql中,如果不是用C++类来抽象,那么就是用含函数指针的结构体来抽象,这也是C语言最常用的习惯。 ...
分类:
系统相关 时间:
2017-05-04 00:00:32
阅读次数:
208
线程中断 在一个线程对象上调用 interrupt() 会中断相应的线程,并会在这个线程中抛出一个类型为 boost::thread_interrupted 的异常。 如果给定的线程不包含任何中断点,简单调用interrupt就不会起作用。 每当一个线程中断点,它就会检查interrupt是否被调用 ...
分类:
编程语言 时间:
2017-05-03 14:30:47
阅读次数:
146
线程的各种状态如上图所看到的。 对于wait/notify的測试,我将会留到 生产者消费者模式中实现。 对于join、interrupt的測试例如以下: package com.huan; public class ThreadTest { public static void main(Strin ...
分类:
编程语言 时间:
2017-05-01 15:06:40
阅读次数:
153
在Java多线程中,除了使用synchronize关键字来实现线程之间的同步互斥,还可以使用JDK1.5中新增的RetrantLock类来实现同样的效果。RetrantLock类的扩展功能也更加强大,比如具有嗅探锁定,多路分支通知等功能,在使用上也比synchronize更为灵活。 借助于Condi ...
分类:
编程语言 时间:
2017-04-30 19:24:16
阅读次数:
213
main方法中 try { System.out.println(aa()); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("呵呵大"); e.printStackTrace(); } S ...
分类:
编程语言 时间:
2017-04-30 01:07:30
阅读次数:
206
标题中的几个概念大概设计到线程同步以及线程阻塞这两个概念。线程同步,就是同一时刻,只有一个线程能执行指定的代码;另外一个线程阻塞就是当前线程暂时停在某个位置,等待某个条件成立之后再继续往下面执行。 线程同步就是,是为了控制多线程工作存在的并发造成共享资源竞争的问题。java中可以通过加锁(monit ...
分类:
编程语言 时间:
2017-04-29 16:17:38
阅读次数:
169