随笔分类 - Linux编程
摘要:进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。(资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。
        阅读全文
                
摘要:#include <pthread.h> pthread_cond_t cond; pthread_mutex_t mutex_m; bool flag = false; void fun(){ pthread_mutex_lock(&mutex_m); while(flag == false){ 
        阅读全文
                
摘要:std::mutex m_a; { std::unique_lock<std::mutex> lk(m_a); a++; } unique_lock<std::mutex> lk(m_a);对象在超出作用域时,会调用析构函数,析构函数会将对象持有的互斥锁解锁,所以即使不主动解锁,超出作用域后 lk(
        阅读全文
                
摘要:《Linux-UNIX系统编程手册》
        阅读全文
                
摘要:转载自:https://blog.csdn.net/qq_34793133/article/details/80087727 互斥量和信号量的区别 1. 互斥量用于线程的互斥,信号量用于线程的同步。 这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。 互斥:是指某一资源同时只允许一个访问者对
        阅读全文
                
摘要:EPOLLIN - 当关联的文件可以执行 read ()操作时。 EPOLLOUT - 当关联的文件可以执行 write ()操作时。 EPOLLRDHUP - (从 linux 2.6.17 开始)当socket关闭的时候,或者半关闭写段的(当使用边缘触发的时候,这个标识在写一些测试代码去检测关闭
        阅读全文
                
摘要:epoll模式中事件可能被触发多次,比如socket接收到数据交给一个线程处理数据,在数据没有处理完之前当前socket又有新数据达到触发了事件,另一个线程被激活获得该socket,从而产生多个线程操作同一socket,即使在ET模式下也有可能出现这种情况。采用EPOLLONETSHOT事件的文件描
        阅读全文
                
摘要:转载自:https://www.jianshu.com/p/c4dc22699a42 CGI 早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服
        阅读全文
                
摘要:1.什么是UNIX域套接字Unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务通信的一种方式。是进程间通信(IPC)的一种方式。它提供了两类套接字:字节流套接字(有点像TCP)和数据报套接字(有点像UDP)UNIX域数据报服务是可靠的,不会丢失消息,也不会传递出错。IP协议标识客户服
        阅读全文
                
摘要:printf("%d,%d,%d,%d,%d,%d,%d\n",POLLIN,POLLRDNORM,POLLRDBAND,POLLPRI,POLLOUT,POLLERR, POLLRDHUP); 上面一行代码的输出为: 1,64,128,2,4,8,8192 根据事件参数对应的二进制值,我们可以知道
        阅读全文
                
摘要:转自:《Linux高性能服务器编程》,游双著
        阅读全文
                
摘要:转载自:https://blog.csdn.net/YMY_mine/article/details/81212731 一、ET模式(边沿触发)的文件描述符(fd): 当epoll_wait检测到fd上有事件发生并将此事件通知应用程序后,应用程序必须立即处理该事件,因为后续的epoll_wait调用
        阅读全文
                
摘要:《Linux高性能服务器编程》 游双
        阅读全文
                
摘要:<signal.h>中 signal()函数的声明: /* Type of a signal handler. */ typedef void (*__sighandler_t) (int); extern __sighandler_t signal (int __sig, __sighandler
        阅读全文
                
                    
                
浙公网安备 33010602011771号