在使用多线程的时候,往往存在一定的公共数据,为了避免多个线程同时操作同一数据,我们需要为线程加锁。加锁的原理:每一个引用类型的对象都有一个同步索引块,指示当前使用该对象的线程数,每个线程执行到Lock语句块的时候就会判断当前锁定项(这里是this,当前窗体对象)的同步索引块是否等于0(即没有线程.....
分类:
编程语言 时间:
2014-06-28 18:33:22
阅读次数:
192
1. 概念 阻塞队列的概念和前面提到的缓冲区的概念类似,常见一个固定长队的队列 ,如果队列满的时候 put数据则一致会阻塞等待,直到队列数据被取走后会立即执行put数据操作同样的道理,如果队列为空时进行取数据take操作,则一直会阻塞等待,知道有线程执行了put数据到队列中后才会立即执行take.....
分类:
编程语言 时间:
2014-06-28 18:30:12
阅读次数:
247
免责声明: 本文中使用的部分图片来自于网络,如有侵权,请联系博主进行删除 1. Oracle Glodengate是什么? GoldenGate是oracle的一种基于数据库日志的数据同步软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化全部或者部分的应用到目标数据库,实现...
分类:
数据库 时间:
2014-06-28 18:22:23
阅读次数:
377
今天有个小需求, 程序要求执行一个检测操作, 如果检测失败的话则弹出信息并且关闭程序由于检测代码是封装到一个独立进程里的, 所以直接使用TerminateProcess(GetCurrentProcess, 0);来关闭当前进程可是在测试时却发现, 原本使用MessageBox来弹出消息却会阻塞结束...
分类:
其他好文 时间:
2014-06-28 17:50:51
阅读次数:
270
设计模式总结(3)==========================================singleton pattern单件模式:确保一个类只有一个实例,并提供一个全局访问点。线程安全:同步getInstance方法:public synchronized static Single...
分类:
其他好文 时间:
2014-06-28 16:31:15
阅读次数:
299
Select单进程非阻塞TCP echo服务器1. select 描述 #include #include int select( int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct...
分类:
其他好文 时间:
2014-06-28 15:52:47
阅读次数:
135
Type the following command to install ntp:# yum install -y ntpTurn on service:#chkconfig ntpd onSynchronize the system clock with 0.pool.ntp.org serve...
分类:
其他好文 时间:
2014-06-28 14:45:54
阅读次数:
185
1.概念 Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数2.案例package org.lkl.thead.foo;import java.util.concurrent.Executo.....
分类:
编程语言 时间:
2014-06-20 17:00:21
阅读次数:
228
1.目标 假定有一个绑定的缓冲区,它支持 put 和 take 方法。如果试图在空的缓冲区上执行 take操作,则在某一个项变得可用之前,线程将一直阻塞;如果试图在满的缓冲区上执行 put操作,则在有空间变得可用之前,线程将一直阻塞。我们喜欢在单独的等待 set 中保存 put 线程和 take线程...
分类:
编程语言 时间:
2014-06-20 15:57:02
阅读次数:
234
在没有正确同步的情况下,如果多个线程访问同一个变量,程序就存在隐患。有3种方法修复它:1. 不要跨线程共享变量;2. 使变量变量变为不可变的;3. 在任何访问变量的时候使用同步。示例:非线程安全的Servlet计算请求而没有必要的同步public class UnsafeCountingFactor...
分类:
编程语言 时间:
2014-06-20 14:18:43
阅读次数:
245