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多线程
嵌入式工程师以及C++程序员到公司就业需要掌握那些技术?
嵌入式开发方向图森科技有限公司,嵌入式软件研发1、c/c++,python,Linux,shell,Makefile2、Linux下c/c++调试手段3、
Linux多线程
,进程通信,文件io操作4、socket
new_stylle
·
2020-08-10 12:35
C/C++
嵌入式
c++
嵌入式
Linux多线程
基础学习(七)pthread一次性初始化
在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易些。首先要定义一个pthread_once_t变量,这个变量要用宏PTHREAD_ONCE_INIT初始化。pthread_once_tonce_control=PTHREAD_
laismith
·
2020-08-10 06:10
多线程
Linux多线程
基础学习(五)线程同步-读写锁
读写锁基础概念通过读写锁,可以对受保护的共享资源进行并发读取和独占写入。读写锁是可以在读取或写入模式下锁定的单一实体。要修改资源,线程必须首先获取互斥写锁。必须释放所有读锁之后,才允许使用互斥写锁。对数据库的访问可以使用读写锁进行同步。读写锁支持并发读取数据库记录,因为读操作不会更改记录的信息。要更新数据库时,写操作必须获取互斥写锁。在一些程序中存在读者写者问题,也就是说,对某些资源的访问会存在两
laismith
·
2020-08-10 06:10
多线程
多线程
linux
编程
Linux多线程
基础学习(八)私有数据
在进程内的所有线程共享相同的地址空间,任何声明为静态或外部的变量,或在进程堆声明的变量,都可以被进程所有的线程读写。那怎样才能使线程序拥有自己的私有数据呢。posix提供了一种方法,创建线程键。1.为什么需要线程私有数据:原因一:有时候需要维护基于每个线程的数据,用线程ID作为索引。因为线程ID不能保证是小而连续的整数,所以不能简单的分配一个线程数据数组,用线程ID作为数组的索引。即使线程ID确实
laismith
·
2020-08-10 06:10
多线程
Linux多线程
之线程终止
主动终止(终止自己)调用return(void*)var;调用voidpthread_exit(void*value_ptr),其它线程可以调用pthread_join获得这个针。注:这两个函数返回值都为指针类型,在线程中使用时所指向的地址必须为:malloc分配的或者全局变量;因为当线程退出是其作用域的变量都将消失。这两个函数的返回值都能通过intpthread_join(pthread_tth
Mark_404
·
2020-08-09 03:46
Linux多线程编程
Linux多线程
之线程控制与清理
问题有时候希望线程退出时能够自动的执行某些函数,为了能达到此目的,OS提供了两个函数帮我们完成这个功能voidpthread_cleanup_push(void(*rtn)(void*),void*arg);voidpthread_cleanup_pop(intexecute);这两个函数是成对使用的,缺一不可。rtn:清理函数指针,返回类型为void参数类型为void*arg:调用清理函数传递的
Mark_404
·
2020-08-09 03:46
Linux多线程编程
Linux多线程
三 简单的TCP服务端和客户端传输
服务端/*intsocket(intdomain,inttype,intprotocol);建立一个协议族为domain、协议类型为type、协议编号为protocol的套接字文件描述符函数socket()的参数domain用于设置网络通信的域,函数socket()根据这个参数选择通信协议的族。函数socket()的参数type用于设置套接字通信的类型。函数socket()的第3个参数protoc
去你个锤子
·
2020-08-09 02:14
Linux
Linux多线程
一
#include#include#include#include/*#########################################1.创造新线程:1.线程ID2.创建线程2.线程生命周期:1.初始线程、主线程2.线程创建3.线程的基本状态:a.就绪:线程能够运行,但是在等待可用的处理器(刚创建、解除阻塞、线程被抢占)b.运行:线程正在运行,多核系统中,可能同事多个线程在运行(处
去你个锤子
·
2020-08-09 02:14
Linux
Linux多线程
二
互斥锁和条件变量////模拟黄牛抢票,100张票,共有四个黄牛在抢票//#include//#include//#include//#include//#include//intticket=100;//pthread_mutex_tmutex=PTHREAD_MUTEX_INITIALIZER;//定义初始化锁//void*thr_start(void*arg){//while(1){//pth
去你个锤子
·
2020-08-09 02:14
Linux
浅谈
linux多线程
编程和windows多线程编程的异同
很早以前就想写写linux下多线程编程和windows下的多线程编程了,但是每当写时又不知道从哪个地方写起,怎样把自己知道的东西都写出来,下面我就谈谈
linux多线程
及线程同步,并将它和windows的多线程进行比较
yhf19881015
·
2020-08-07 22:31
Linux多线程
的同步与互斥
一、共享资源的使用1.由于同一进程下的多线程是共用地址空间,因此就要考虑共享资源的使用。如果没有一定的规则,那么共享资源的内容就会显得杂乱无章,这里引入了同步与互斥的概念!2.进行多线程编程,因为无法知道哪个线程会在哪个时候对共享资源进行操作,因此让如何保护共享资源变得复杂。为了解决共享资源的使用问题,通过下面这些技术的使用,可以解决线程之间对资源的竞争:a.互斥量Mutexb.信号灯Semaph
zhengqijun_
·
2020-08-04 22:54
Linux
C
Linux多线程
(五)多线程访问共享资源
实验:创建两条线程,线程的执行函数是取钱,(本实验有3个文件,其中account.c和account.h文件是模拟银行取钱,存钱,查询余额的函数,test.c为主函数。由于账户里有10000元,两个人去取钱,结果同时取到了10000元源码如下:account.c#include"account.h"#include#include#includeAccount*create_account(int
qq_38211852
·
2020-08-04 17:00
Linux多线程
编程(三)---线程之间的同步与互斥进阶实验
实验目的通过编写经典的“生产者-消费者”问题的实验,进一步熟悉Linux中的多线程编程,并且掌握用信号量处理线程间的同步和互斥问题。实验内容“生产者--消费者”问题描述如下:有一个有限缓冲区(这里用有名管道实现FIFO式缓冲区)和两个线程:生产者和消费者,它们不停地把产品放入缓冲区和从缓冲区拿走产品。一个生产者在缓冲区满的时候必须等待,一个消费者在缓冲区空的时候也必须等待。另外,因为缓冲区是临界资
玖零大壮
·
2020-08-04 15:16
Linux应用编程
嵌入式Linux应用程序开发
Linux多线程
编程(二)---线程之间的同步与互斥
/**********************************************************************2019年6月26日声明:本博客资源下载积分最开始为免费的,我也不知道为什么有的很高了。*********************************************************************/概述由于线程共享进程的资源和地
玖零大壮
·
2020-08-04 11:45
Linux应用编程
嵌入式Linux应用程序开发
linux下c语言实现多线程文件复制
(2013-03-1500:53:49)转载▼标签:
linux多线程
文件复制it分类:linux下c语言开发1、具体思路把一个文件分成N份,分别用N个线程copy,每个线程只读取指定长度字节大小的内容最后一个线程的源文件所指定的结束位置是文件的实际大小每个线程读取指定源文件部分的起始位置和结束位置的内容到缓冲区每个线程将缓存中的内容写入目的文件的指定开始位置和结束位置主线程必须等到所有线程
爱搬砖的摄影师
·
2020-08-04 01:27
Linux多线程
基础学习(三)线程生命周期
初始线程/主线程1、当c程序运行时,首先运行main函数。在线程代码中,这个特殊的执行流被称作初始线程或者主线程。你可以在初始线程中做任何普通线程可以做的事情。2、主线程的特殊性在于,它在main函数返回的时候,会导致进程结束,进程内所有的线程也将会结束。这可不是一个好的现象,你可以在主线程中调用pthread_exit函数,这样进程就会等待所有线程结束时才终止。3、主线程接受参数的方式是通过ar
laismith
·
2020-08-03 18:02
多线程
Linux多线程
详解
线程也被称为轻权进程(lightweightprocess)。在传统的UNIX上,一个进程让另一个实体做某个事务是用fork派生子进程的方法处理的。派生子进程的代价比线程要昂贵得多,尤其是在父子进程之间、子进程之间传递信息需要用IPC或其他方法通信。相对比,使用线程有许多优点,如创建线程要比创建进程快的多、一个进程中的线程共享相同的全局存储区等等。Linux系统下的多线程遵循POSIX线程接口,称
Yanfei90
·
2020-08-03 12:28
Unix/Linux
Linux多线程
实践(五 )Posix信号量和互斥锁解决生产者消费者问题
Posix信号量和SystemV信号量的一点区别:systemv信号量只能用于进程间同步,而posix信号量除了可以进程间同步,还可以线程间同步。systemv信号量每次PV操作可以是N,但Posix信号量每次PV只能是1。除此之外,posix信号量还有命名和匿名之分(man7sem_overview):Posix信号量有名信号量无名信号量sem_opensem_initsem_closesem_
NK_test
·
2020-08-01 10:14
Linux基础及编程
Programming
int
the
Linux
environment
linux多线程
之posix信号量
信号量理解1.在多任务操作系统中,通常资源都是固定数量可用的,比如打印机这个外设;但是需要使用该资源的任务有很多,这时就可以使用到信号量来协调资源的使用了(当然在资源内部用锁也可以达到同样的效果);2.信号量有被操作系统实现为PV操作:P(passeren),消耗资源,对信号量做减一操作;V(vrijgeven),释放资源,对信号量做加一操作;PV操作都是原子操作;3.当任务A需要做P操作,但是信
背姑娘的锅
·
2020-08-01 10:32
linux环境开发
Linux多线程
编程详解----条件变量pthread_cond_t
参考以上三篇博文,链接如下:http://blog.csdn.net/ithomer/article/details/6031723http://blog.sina.com.cn/s/blog_825085b601018xfp.htmlhttp://blog.csdn.net/ffilman/article/details/4871920在多线程编程下,常常出现A线程要等待B线程条件完成后再继续进
mashang123456789
·
2020-07-31 20:07
单例模式,懒汉饿汉,线程安全,double checked locking的问题
静态局部变量实现尾语本文目的 之前在看《
Linux多线程
服务端编程-使用muduoC++网络库》,看到2.5线程安全的Singleton实现时,里面对单例模式的线程安全有这么一句话,人们一直认为doublecheckedlocking
LupinLeo
·
2020-07-30 09:35
muduo
生产者消费者问题(
Linux多线程
下两种实现)
生产者消费者问题是同步问题中的一种常见情况,借用一下维基百科的话生产者消费者问题(英语:Producer-consumerproblem),也称有限缓冲问题(英语:Bounded-bufferproblem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重
Reazon
·
2020-07-29 11:19
暑假怒学
OS实验二 线程同步与通信
2实验内容通过
Linux多线程
与信号灯机制,设计并实现计算机线程与I/O线程共享缓
Hello_404
·
2020-07-29 00:50
操作系统
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
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
多线程编程
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
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
其他