随笔分类 - 多线程
Design pattern : Singleton
摘要:Singleton语义: 在整个应用程序里只能创建唯一一个对象,并且提供全局的访问点:实现:1.先看一个经常性的一个错误实现:class Singleton{private: Singleton() {};/× 如果没有定义 copy constructor 和 assignment operator ,编译器会实现,就可以根据已有的对象构造新对象,就不能保证唯一×/Singleton( const Singleton & ); // no implement Singleton & operator = ( const Singleton & );
阅读全文
pthread
摘要:note:Process Mode:pid_t pid = fork()if ( pid == 0){ // child process to do }else{ // parent process to do // waitpid( pid, & status, WNOHANG)}Pthread APIpthread_t thread;int pthread_create( pthread_t * thread, const pthread_att_t * att, void *(*start)(void *), void * arg)pthread_t pthread_self()
阅读全文
由计算机的锁是怎么实现的
摘要:Background: 工作中需要避免两个人同时在一台Linux部署测试环境,需要锁同步。(当然还有其他方法去避免这样的问题,比如用不同的权限设置)。Linux 里面真是强大,已经提供对文件加锁的工具。一类是flock,另外还有一组(lockfile-create, lockfile-check, lockfile-touch, lockfile-remove)。 Question:但是计算机里面锁是如何实现的?需要借助原子操作。那原子操作如何实现呢?如果是单CPU,可以用屏蔽中断,不去调度任何其他进程线程,保证指令的原子性。那么多CPU 又是如何保证的呢? 需要机器硬件支持。CUP提供的有原
阅读全文