1. 简介
log4cplus是C++编写的开源的日志系统,The
purpose of this project is to port the excellentLog
for Java (log4j)logging library to C++。
log4cplus具有灵活、强大、使用简单、多线程安全的特点,实在是杂牌军、游击队的福音。
2. 安装使用(Linux)
log...
分类:
其他好文 时间:
2014-10-27 19:37:51
阅读次数:
265
java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境...
分类:
编程语言 时间:
2014-10-20 14:54:36
阅读次数:
301
一、errno的由来 在C编程中,errno是个不可缺少的变量,特别是在网络编程中。如果你没有用过errno,那只能说明你的程序不够健壮。当然,如果你是WIN32平台的GetLastError(),效果也是一样的。 为什么会使用errno呢?个人认为,这是系统库设计中的一个无奈之举,他更多的是个技巧...
分类:
编程语言 时间:
2014-10-19 14:11:53
阅读次数:
168
目前界面不大,才几千行代码,所以我分割的也不是特别详细。个人感觉,写这些东西,还是面向对象的思想比较好,所以,模块的组织方式,都是以面向对象的思想组织起来的。我英语很差,没把这些玩意写成拼音,我很庆幸。这套库现在的当务之急,就是寻找一个有效的同步或者互斥的方案,立刻修改为多线程安全版本,不然的话,以...
分类:
其他好文 时间:
2014-10-13 20:10:47
阅读次数:
187
一、问题的提出以买票系统为例: 1 class Ticket implements Runnable 2 { 3 public int sum=10; 4 public void run() 5 { 6 while(true) 7 { 8 ...
分类:
编程语言 时间:
2014-10-02 01:57:11
阅读次数:
331
ReactorThread
这一章将分析Swoole的ReactorThread模块。虽然叫Thread,但是实际上使用的是swFactoryProcess也就是多进程模式。但是,在ReactorThread中,所有的事件监听是在线程中运行的(Rango只是简单提到了PHP不支持多线程安全,具体原因还有待请教……),比如在UDP模式下,是针对每一个监听的host开辟一个线程运行reactor...
分类:
其他好文 时间:
2014-09-29 15:26:21
阅读次数:
577
众所周知,多线程下计数存在着计数不正确的问题。这个问题的根源在于多个线程对同一个变量可以同时访问(修改)。这样就造成了修改后的结果不一致。
首先在这里先强调一点,volatile 关键字并不能提供多线程安全访问。因为有volatie修饰的变量,每次操作时遵循下面动作:
从内存取值 ---> 放入寄存器 ---> 操作 --->写回内存
这几个步骤不是原子的操作在任意两个...
分类:
编程语言 时间:
2014-09-28 20:09:16
阅读次数:
379
滑动窗口是日志模块重要的数据结构,用于日志发送接收以及日志索引查询,和组内同学讨论了的多线程安全的滑动窗口设计,有三种实现方案,写此文档记录下。...
分类:
编程语言 时间:
2014-09-24 16:55:19
阅读次数:
261
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
前言:
在面向对象的思想下,线程的写法根据要创建的对象层级可以分为三种写法:
1,一层对象写法:采用extends Thread,复写父类的run()方法,直接建立一个线程实例对象的方式,这种方式简单,适用于单任务的单线程需求.在此不做过多讨论;
2,二层对象写法:采用impleme...
分类:
编程语言 时间:
2014-09-20 10:07:47
阅读次数:
233
本文演示,Tread多线程安全问题,以及一种解决多线程安全方式。
1)一个线程不安全的Demo
2)线程同步
一、小Demo演示引出线程安全问题:
二、线程同步
问题:对于上面的问题,我们是不是可以采取一个这样的措施?当线程1执行run代码段的时候,我们不让其他的线程来执行,直到线程1执行完,其他的线程才可以进入。
解决方案:好在Java里面本来就有这样的函数,将代码段包裹起来,就可以达到上面问题描述的效果。函数名:synchronized,需要一个参数,随便传个对象就ok了。...
分类:
编程语言 时间:
2014-09-17 23:22:52
阅读次数:
354