E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Linux多线程编程小结
ARM_
Linux多线程
编程示例
下面的代码是http://blog.csdn.net/ex_net/article/details/7250033的改进版本,用多线程实现读卡器的读卡。#include#include"reader.h"void*create(void*arg){while(1){printf("threadisRunning.....");sleep(5);}}void*ReaderThread(void*ar
weixin_30416497
·
2020-07-28 16:25
Linux多线程
实践(4) --线程特定数据
线程特定数据intpthread_key_create(pthread_key_t*key,void(*destr_function)(void*));intpthread_key_delete(pthread_key_tkey);intpthread_setspecific(pthread_key_tkey,constvoid*pointer);void*pthread_getspecific(
weixin_30340353
·
2020-07-28 16:38
Linux多线程
服务端编程二
这章节主要是多线程同步方面的问题。主要技术点:1)互斥器/条件变量/读写锁的使用场合和注意点2)read-copy-update3)使用shared_ptr实现copy-on-write4)线程安全的单例模式实现5)CPU的乱序执行/memorybarrier6)sleep/usleep/nanosleep不能乱用,使用其他方式等待某些资源可用等会更好些7)copy-on-write/copy-o
fooboo
·
2020-07-28 15:22
【原创】xenomai内核解析--信号signal(一)---Linux信号机制
博客地址:https://www.cnblogs.com/wsg1100/目录1.Linux信号1.1注册信号处理函数1.2信号的发送1.3信号的处理2
linux多线程
信号1.Linux信号涉及硬件底层
木多
·
2020-07-17 20:00
Linux多线程
C++工具库:liblmp_tool -- 线程类Thread
Linux多线程
编程工具库liblmp_toolgithub:https://github.com/Dwyane05/liblmp_toolThread类封装了原始pthread_create等操作函数
Dwyane05
·
2020-07-15 22:46
C++
Linux多线程
C++工具库:liblmp_tool -- 同步工具CountDownLatch
Linux多线程
编程工具库liblmp_toolgithub:https://github.com/Dwyane05/liblmp_toolCountDownLatch是一个同步工具类,它允许一个或多个线程一直等待
Dwyane05
·
2020-07-15 22:46
C++
Linux多线程
C++工具库:liblmp_tool -- 条件变量Condition
Linux多线程
编程工具库liblmp_toolgithub:https://github.com/Dwyane05/liblmp_tool使用RAII手法封装MutexLock&mutex_;pthread_cond_tpcond
Dwyane05
·
2020-07-15 22:15
C++
Linux多线程
C++工具库:liblmp_tool -- 线程池类ThreadPool
Linux多线程
编程工具库liblmp_toolgithub:https://github.com/Dwyane05/liblmp_tool使用条件变量和互斥锁实现线程池:头文件:/**UseofthissourcecodeisgovernedbyaBSD-stylelicense
Dwyane05
·
2020-07-15 22:15
C++
Linux多线程
C++工具库:liblmp_tool -- RAII手法封装互斥锁MutexLock
Linux多线程
编程工具库liblmp_toolgithub:https://github.com/Dwyane05/liblmp_tool互斥锁(mutex)恐怕是使用得最多的同步原语,粗略地说,它保护了临界区
Dwyane05
·
2020-07-15 22:15
C++
Muduo网络库源码分析(一) EventLoop事件循环(Poller和Channel)
从这一篇博文起,我们开始剖析Muduo网络库的源码,主要结合《
Linux多线程
服务端编程》和网上的一些学习资料!
NK_test
·
2020-07-15 18:32
Linux基础及编程
Muduo源码分析
linux多线程
编程书籍推荐:linux大牛之路从这几本书開始总结
linux多线程
编程是指基于Linux操作系统下的多线程编程,包含多任务程序的设计,并发程序设计,网络程序设计。数据共享等。Linux系统下的多线程遵循POSIX线程接口,称为pthread。
weixin_30492601
·
2020-07-15 15:56
C++实现的一个简单的日志库
最近一直在看《
Linux多线程
服务器编程》这本书。看了里面实现的一个日志库功能,觉得很有意思。于是,就在2周前就准备开始模仿它实现。由于最近比较忙,直到今天才完成,其实也没怎么去验证和测试。
huangjh2018
·
2020-07-15 14:29
c++
Linux
window
【
Linux多线程
】 pthread_join函数
函数pthread_join用来等待一个线程的结束,线程间同步的操作。#includeintpthread_join(pthread_tthread,void**retval);描述:pthread_join()函数,以阻塞的方式等待thread指定的线程结束。当函数返回时,被等待线程的资源被收回。如果线程已经结束,那么该函数会立即返回。并且thread指定的线程必须是joinable的。(注:一
container_off
·
2020-07-15 13:56
Linux
Linux 多线程 pthread库初探
Linux多线程
pthread库用法(一)
Linux多线程
编程基介绍Linux线程有时候也叫LightWeightProcessLWP轻量级线程,是进程的一个执行流,有自己的执行栈,是操作系统调度的最小单位
ka__ka__
·
2020-07-14 23:35
OS/Linux
C/C++
Linux多线程
Pthread学习小结
简介POSIXthread简称为pthread,Posix线程是一个POSIX标准线程.该标准定义内部API创建和操纵线程.作用线程库实行了POSIX线程标准通常称为pthreads.pthreads是最常用的POSIX系统如Linux和Unix,而微软Windowsimplementations同时存在.举例来说,pthreads-w32可支持MIDP的pthreadPthreads定义了一套C
麦子_hsx
·
2020-07-14 15:22
Linux多线程
之线程同步(条件变量)
什么是线程同步?案例原型:A先扫5次地,A扫完地B再拖地,从而完成线程同步。#include#includepthread_tthread[2];intnumber=0;//共享资源pthread_mutex_tmut;voidstudentA(){inti;for(i=0;i=5)printf("studentAhasfinishhiswork!\n");pthread_mutex_unlock
大坏蛋的小可爱
·
2020-07-14 05:23
Linux
第八章 异步编程模式
目录1异步编程的必要性1.1同步调用与异步调用1.2基于委托的异步调用1.3等待异步调用完成1.4处理异步调用时的异常1.5异步
编程小结
1异步编程的必要性.NET的异步编程技术主要分为两大块:“使用IAsyncResult
Mr.Devin
·
2020-07-14 00:29
.NET
开发要点精讲
linux多线程
不可重入和可重入
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着
wenzi49312
·
2020-07-13 21:01
linux多线程编程
Linux多线程
编程-互斥锁
互斥锁多线程编程中,(多线程编程)可以用互斥锁(也称互斥量)可以用来保护关键代码段,以确保其独占式的访问,这有点像二进制信号量。POSIX互斥锁相关函数主要有以下5个:#includeintpthread_mutex_init(pthread_mutex_t*mutex,constpthread_mutexattr_t*mutexattr);intpthread_mutex_destroy(pth
luoxn28
·
2020-07-13 15:18
Linux/Unix学习
Linux编程学习笔记 |
Linux多线程
学习[1] - 线程的创建和基本控制
这是这个系列的第一篇文章,是我对最近学习
Linux多线程
的总结。什么是线程我们来看看维基百科是如何对线程进行定义的:线程(英语:thread)是操作系统
RdouTyping
·
2020-07-13 15:08
Linux多线程
编程详细解析----条件变量 pthread_cond_t
Linux操作系统下的多线程编程详细解析----条件变量1.初始化条件变量pthread_cond_init#includeintpthread_cond_init(pthread_cond_t*cv,constpthread_condattr_t*cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件
无痕公子996
·
2020-07-13 10:52
多进程
linux多线程
之自旋锁
转载自http://blog.csdn.net/daiyudong2020/article/details/52202526基本概念:何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥
m345376054
·
2020-07-13 08:20
Linux
Linux线程编程----信号处理
2.1pthread_sigmask2.2sigwait2.3pthread_kill三示例3.1示例13.2示例23.3示例33.4示例4四总结转载:http://www.cnblogs.com/clover-toeic/p/4126594.html前言
Linux
ethan0ly
·
2020-07-13 04:08
Linux
linux进程通信:使用posix消息队列mq进行线程或进程间的通信
在
linux多线程
编程中,如果两个线程没用共同的数据区,则需要使用消息队列从一个线程往另一个线程发送消息(同样可以应用在进程间通信)消息队列通过mq_open()创建和打开,此函数返回一个消息队列描述符
小麒麟666
·
2020-07-12 21:06
c/c++
网络编程/多线程
linux多线程
编程--信号量和条件变量 唤醒丢失事件
关于linux下信号量和条件变量的使用,在很多地方都可以找到相关文章,信号量、条件变量、互斥锁都是线程同步原语,在平时多线程编程中只要知道一两种就可以轻松搞定,我也是这么认为的,但是今天发现,有时还是有区别的。在实现多线程编程中,其中有些东西是可以互相转换的,比如使用信号量可以实现条件变量,关于这三者的基本用法不在累述,我的博客中也有相关介绍,这里介绍条件变量丢失唤醒事件的事情。在线程未获得相应的
鱼思故渊
·
2020-07-12 19:05
C语言
linux多线程
学习(五)——信号量线程控制
在上一篇文章中,讲述了线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制。PV原语是对整数计数器信号量sem的操作,一次P操作可使sem减一,而一次V操作可是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问权限。当信号量的值大于零或等于零的时候,该进程(或线程)具有
wtz1985
·
2020-07-12 16:10
linux
多线程编程
linux
多线程
null
join
struct
linux多线程
学习(四)——互斥锁线程控制
在前面的文章中提及到,一个进程中的多个线程是共享同一段资源的,由于线程对资源的竞争引出了锁。其中mutex是一种简单的加锁方法,这个互斥锁只有两种状态,那就是上锁和解锁,可以把互斥锁看作是某种意义上的全局变量。在某一时刻,只能有一个线程取得这个互斥上的锁,拥有上锁状态的线程可以对共享资源进行操作,而其他线程在该线程未解锁之前,够会被挂起,直到上锁的线程解开锁。可以这么说,互斥锁使得共享资源按序的在
wtz1985
·
2020-07-12 16:10
linux
多线程编程
linux多线程
学习(三)——线程属性设置。
在上一篇文章中,介绍了线程的创建和退出,以及相关函数的使用。其中pthread_create函数的第二个参数,是关于线程属性的设置,这也是今天所有讲述的。这些属性主要包括邦定属性、分离属性、堆栈地址、堆栈大小、优先级。其中系统默认的是非邦定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。(1)邦定属性。在L
wtz1985
·
2020-07-12 16:10
linux
多线程编程
linux多线程
学习(七)——实现“生产者和消费者”
在上一篇文章中,利用信号量实现了线程间的互斥,这一篇将要利用信号量的互斥同步机制来实现一个经典实例,就是“生产者和消费者”。1、简单描述生产者和消费者的问题。有一个缓冲区和两个线程:生产者和消费者。生产者把产品放入缓冲区,而消费者从缓冲区中拿走。当缓冲区满时,生产者必须等待;另外,当缓冲区空时,消费者必须等待,并且缓冲区不能同时进行生产者和消费者的操作。#include#include#inclu
wtz1985
·
2020-07-12 16:10
linux
多线程编程
linux多线程
学习(二)——线程的创建和退出
在上一篇文章中对线程进行了简单的概述,它在系统中和编程的应用中,扮演的角色是不言而喻的。学习它、掌握它、吃透它是作为一个程序员的必须作为。在接下来的讲述中,所有线程的操作都是用户级的操作。在LINUX中,一般pthread线程库是一套通用的线程库,是由POSIX提出的,因此他的移植性是非常好的。创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_create。在线程创
wtz1985
·
2020-07-12 15:39
linux
多线程编程
linux多线程
的信号处理
3条原则:1:如果是异常产生的信号(比如程序错误,像SIGPIPE、SIGEGV这些),则只有产生异常的线程收到并处理2:如果是用pthread_kill产生的内部信号,则只有pthread_kill参数中指定的目标线程收到并处理。3:如果是外部使用kill命令产生的信号,通常是SIGINT、SIGHUP等jobcontrol信号,则会遍历所有线程,直到找到一个不阻塞该信号的线程,然后调用它来处理
grimlock44
·
2020-07-12 14:51
当
Linux多线程
遭遇Linux多进程
背景本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版](https://book.douban.com/subject/1788421/)本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分析其原理。这里说的多进程多线程并不是单一的多进程或多线程,而是多进程和多线程,往往会在写一个大型应用时才会用到多进程多线程的模型。这
sunshineywz
·
2020-07-12 00:57
进程调度
Linux多线程
(十一)信号量实现条件变量
这份代码也是基于上两篇博文修改,利用信号量实现了条件变量:源码1:#include#include#include#include#includetypedefstruct{intres;sem_tsem;}Result;void*func_set(void*arg){Result*r=(Result*)arg;inti=1,sum=0;for(;ires=sum;printf("thepthre
qq_38211852
·
2020-07-11 18:03
linux 信号
参考http://blog.chinaunix.net/uid-12274566-id-3050955.html
linux多线程
信号总结(一)1.在多线程环境下,产生的信号是传递给整个进程的,一般而言,
poject
·
2020-07-11 14:51
linux
当
Linux多线程
遭遇Linux多进程
作者简介:廖威雄,目前就职于珠海全志科技股份有限公司从事linux嵌入式系统(TinaLinux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux测试系统的设计和持续集成的维护。拆书帮珠海百岛分舵的组织长老,二级拆书家,热爱学习,热爱分享。##背景本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版](https://b
Linux阅码场
·
2020-07-11 09:15
muduo源码学习笔记(1)
前言:对于muduo库,我觉得,光
Linux多线程
上提到的一些实现,还是不够的,在base/里面,还有/net里面提供了很多不错的实现,值得去学习,暑假算是看看muduo的百分之八十的源码,并对其进行了一次实现
梦花火
·
2020-07-11 08:41
C++
Unix网络编程
Muduo
多线程编程(一)——线程的创建、等待、分离、结合与终止
linux多线程
设计包括多任务程序的设计,并发程序设计,网络程序设计,数据共享等。Linux系统下的多线程遵循POSI
YPT_victory
·
2020-07-10 13:48
操作系统
多线程
Linux
线程退出
线程分离
线程终止
一个例子玩转
linux多线程
问题(创建 执行 条件变量 ......)
一个例子玩转
linux多线程
问题(创建执行条件变量......)ZZ自http://hi.baidu.com/��ѩ����/blog/item/b18de21cbf0ad3024134179a.html
weixin_30909575
·
2020-07-10 07:01
Linux多线程
实践(10) --使用 C++11 编写 Linux 多线程程序
在这个多核时代,如何充分利用每个CPU内核是一个绕不开的话题,从需要为成千上万的用户同时提供服务的服务端应用程序,到需要同时打开十几个页面,每个页面都有几十上百个链接的web浏览器应用程序,从保持着几t甚或几p的数据的数据库系统,到手机上的一个有良好用户响应能力的app,为了充分利用每个CPU内核,都会想到是否可以使用多线程技术。这里所说的“充分利用”包含了两个层面的意思,一个是使用到所有的内核,
weixin_30412167
·
2020-07-10 06:33
Linux多线程
实践(6) --Posix读写锁解决读者写者问题
Posix读写锁intpthread_rwlock_init(pthread_rwlock_t*restrictrwlock,constpthread_rwlockattr_t*restrictattr);intpthread_rwlock_destroy(pthread_rwlock_t*rwlock);intpthread_rwlock_rdlock(pthread_rwlock_t*rwlo
weixin_30252155
·
2020-07-10 06:58
linux多线程
-互斥&条件变量与同步
多线程代码问题描述我们都知道,进程是操作系统对运行程序资源分配的基本单位,而线程是程序逻辑,调用的基本单位。在多线程的程序中,多个线程共享临界区资源,那么就会有问题:比如#include#include#include#includeintg_val=10;void*test1(void*args){g_val=20;printf("in%s:g_val=%d\n",__func__,g_val)
susandebug
·
2020-07-10 03:53
C++
多线程
linux多线程
之线程资源的释放
一般来说,对一段运行代码进行加锁然后解锁,如下所示:pthread_mutex_lock(&mutex);//运行代码;pthread_mutex_unlock(&mutex);如果在运行代码这块发生错误,有异常,导致这个线程异常退出,那么怎么办,pthread_unlock没有得到调用,那么这个锁资源没有解锁。可以用下面的方法修改。pthread_cleanup_push(pthread_mut
summer_liuwei
·
2020-07-10 02:24
C/C++
Linux下的多线程编程
Linux下的多线程编程代码改变世界Posts-106,Articles-0,Comments-1616CnblogsDashboardLoginHOMECONTACTGALLERYRSS吴秦(Tyler)
Linux
stevedusunan
·
2020-07-10 02:28
linux多线程
之读写锁
基本概念:读写锁也叫做共享互斥锁。当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态,所有试图以读模式对它进行加锁的线程都可以得到访问权。与互斥量相比,读写锁在使用之前必须初始化,在释放它们底层的内存之前必须销毁。一、锁的初始化与销毁PTHREAD_RWLOCK_DESTROY(P)POSIXProgrammer'sManualPTHREAD_R
阿卡基YUAN
·
2020-07-09 21:12
Linux__IPC
Linux多线程
之读写锁
概述一般大家对读写锁应该有一个认知,当读数据比修改数据频繁,我们可以采用读写锁。读写锁的分配规则如下:只要没有线程持有某个给定的读写锁用于写时,那么任意数目的线程可以持有该读写锁用于读;仅当没有线程持有某个给定的读写锁用于读或写时,才能分配该读写锁用于读。获取与释放读写锁读写锁的类型是pthread_rwlock_t,如果这个类型的某个变量是静态分配的,那么可以通过PTHREAD_RWLOCK_I
cncoderwang
·
2020-07-09 15:14
Linux线程同步
linux多线程
之自旋锁
基本概念:何谓自旋锁?它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就
带鱼兄
·
2020-07-09 15:09
linux之线程操作
linux
多线程
自旋锁
线程同步
线程安全
读写锁应用浅谈
后端开发常常碰到多线程同步问题,也就会经常用到锁,其中关于读写锁,大家还争论不休,主要是很多人会倾向于使用读写锁,认为读写锁能比普通的互斥锁能带来性能的提升,这里先把陈硕大佬总结的贴出来吧(摘自
LINUX
straka
·
2020-07-09 13:17
C++
software
golang
当
Linux多线程
遭遇Linux多进程
##背景本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版](https://book.douban.com/subject/1788421/)本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分析其原理。这里说的多进程多线程并不是单一的**多进程或多线程**,而是**多进程和多线程**,往往会在写一个大型应用时才会用到多
confirmwz
·
2020-07-09 13:32
linux
进程管理
std::string的Copy-on-Write:不如想象中美好
转载地址:http://www.cnblogs.com/promise6522/archive/2012/03/22/2412686.html可结合陈硕《
Linux多线程
服务端编程》12.7节再探std
SIGXXL
·
2020-07-09 09:59
C/C++
muduo网络库(1):muduo库整体框架
〇、背景0.1、本文背景在学习陈硕《
Linux多线程
服务端编程:使用muduoC++网络库》muduo源代码的过程中,感觉代码架构较复杂:一是和boost相关的内容比较多,对现代C++编程理念不了解的人
李骁睿写技术的地方
·
2020-07-08 18:52
muduo
上一页
5
6
7
8
9
10
11
12
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他