闲暇无事,利用window SDK 与vs2008,基于Windows Vista speech API5.3以及WPF技术开发了一套语音朗读的代码, 牛刀小试, using System;using System.Collections.Generic;using System.Text;usin ...
1.阻塞锁 多个线程同时调用同一个方法的时候,所有线程都被排队处理了。让线程进入阻塞状态进行等待,当获得相应的信号(唤醒,时间) 时,才可以进入线程的准备就绪状态,准备就绪状态的所有线程,通过竞争,进入运行状态。 但是由于被调用的方法越耗时,线程越多的时候,等待的线程等待的时间也就越长,甚至于几分钟 ...
分类:
其他好文 时间:
2019-01-20 15:00:44
阅读次数:
181
背景:并发知识是一个程序员段位升级的体现,同样也是进入BAT的必经之路,有必要把并发知识重新梳理一遍。 并发concurrent: 使用ThreadLocal可以实现线程范围内共享变量,线程A写入的值和线程B获取到的结果一致;ReentrantReadWriteLock允许多个读线程或多个写线程同时 ...
分类:
其他好文 时间:
2019-01-20 00:10:04
阅读次数:
193
关于这三个方法,我们可以查询API得到下列解释: wait():导致当前的线程等待,直到其他线程调用此对象的notify( ) 方法或 notifyAll( ) 方法或者指定的事件用完 notify():唤醒在此对象监视器上等待的单个线程 notifyAll():唤醒在此对象监视器上等待的所有线程 ...
分类:
编程语言 时间:
2019-01-17 20:13:28
阅读次数:
228
一.线程状态的切换 5种 二.深入理解run()和start() run方法就是普通对象的普通方法,只有调用了start()后,Java才会将线程对象和操作系统中实际的线程进行映射,再来执行run方法 运行结果: 放开start(),注释run()之后: ...
分类:
其他好文 时间:
2019-01-16 00:22:54
阅读次数:
255
一、驱动中的poll机制 1.简介:select()和poll()系统调用的本质一样,前者在 BSD UNIX 中引入的,后者在 System V 中引入的。 应用程序使用 select() 或 poll() 调用设备驱动程序的 file_operations 的 poll() 函数。 2.实现(1 ...
分类:
系统相关 时间:
2019-01-13 12:22:40
阅读次数:
227
思路hook调用表的读写函数:源码#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/init.h>#include<linux/sched.h>#include<asm/unistd.h>#include&l
分类:
系统相关 时间:
2019-01-12 16:44:02
阅读次数:
157
AbstractQueuedSynchronizer简称为AQS。大多数开发者不会直接使用AQS,标准同步器类的集合能够满足绝大多数情况的需求。 1.AbstractQueuedSynchronizer简介 在基于AQS构建的同步容器类中,最基本的操作包括各种形式的获取和释放操作。获取操作是一种依赖 ...
分类:
其他好文 时间:
2019-01-11 18:57:01
阅读次数:
182
同步工具类可以是任何一个对象。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量(Semaphore)、栅栏(Barrier)、以及闭锁(Latch)。 所有的同步工具类都包含一些特定的结构化属性:它们封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,此外还提供了一些方 ...
分类:
其他好文 时间:
2019-01-10 22:53:49
阅读次数:
186
可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据 ...
分类:
编程语言 时间:
2019-01-09 16:14:13
阅读次数:
222