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多线程
Linux 多线程 ”一写多读” 模式下的无锁设计
缘起双buffer“无锁”设计指针的切换ptr竞争条件的解决指针访问丢失延伸结语缘起在
linux多线程
环境下对同一变量进行读写时,经常会遇到读写的原子性问题,即会出现竞争条件。
奔跑的企鹅_liuqt
·
2017-02-13 22:25
linux-系统调用
技术与心得
后台开发
Linux编程学习笔记 |
Linux多线程
学习[2] - 线程的同步
什么是线程的同步当有多个线程要同时对一个共享的内存空间进行读写时,我们要保证这个内存空间对于多个线程来说是一致的。当多个线程同时读/写这个内存空间时,就需要对线程进行同步,以确保任何时刻只有一个线程能修改该内存空间,这样才能保证线程不会访问到无效的数据。我通过下面这幅图解释下线程同步的重要性:在这个例子中,两个线程A和B都要按顺序做以下3件事:将变量i写入寄存器寄存器加1将寄存器内容重新写回变量i
RdouTyping
·
2017-01-13 00:00
linux
多线程
c
muduo库的源代码分析1--整体架构
最近,学习了陈硕大侠的《
Linux多线程
服务端编程:使用muduoC++网络库》很受启发。
黑板报
·
2017-01-12 22:50
C++
Linux系统
Linux多线程
编程 —— 线程调用函数时传入参数
当调用pthread_create 第三个和第四个参数不为空时,要注意第四个参数的传递方法一段流行的代码:#include#includeusingnamespacestd;#defineNUM_THREADS10void*say_hello(void*args){inti=*((int*)args);//对传入的参数进行强制类型转换,由无类型指针变为整形数指针,然后再读取;cout#includ
姜团长
·
2017-01-08 11:52
Linux编程学习笔记 |
Linux多线程
学习[1] - 线程的创建和基本控制
这是这个系列的第一篇文章,是我对最近学习
Linux多线程
的总结。什么是线程我们来看看维基百科是如何对线程进行定义的:线程(英语:thread)是操作系统
RdouTyping
·
2017-01-06 00:00
c
linux
多线程
Linux多线程
同步之条件变量
Linux多线程
同步之条件变量1.简介条件变量是多线程的一种同步机制。多线程之间如果存在某种条件,当条件满足时其他线程才能够运行,此时可以使用条件变量。
初沏的茶
·
2017-01-04 21:12
日拾朝夕--12242016
每日一习今天看了
Linux多线程
编程第一章,就记住了weak_ptr,share_ptr的一点小区别。操作系统/数据库的精彩部分书中只提了一下,还得找这些书翻翻。每日一得我是有多关心国
sophietyl
·
2016-12-26 00:02
详解
Linux多线程
编程(不限Linux)
前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2)在主线称中起动线程1,打印“thisisthread1”,并将g_Flag设置为13)在主线称
吴秦(Tyler)
·
2016-12-06 15:41
Linux多线程
学习总结
线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体;进程相当于运行中程序的一种抽象。根据运行环境的调度者的身份,线程可分为内核线程和用户线程。内核线程,在有的系统上称为LWP(LightWeightProcess,轻量级线程),运行在内核空间,由内核调度;用户线程运行在用户空间,由线程库来调度。当进程的一个内核线程获得CPU的使用权时,它就加载并运行一个用户线程。可见,内核线程相当于用
luoxn28
·
2016-11-24 23:00
Linux多线程
使用互斥量同步线程
本文将会给出互斥量的详细解说,并用一个互斥量解决上一篇文章中,要使用两个信号量才能解决的只有子线程结束了对输入的处理和统计后,主线程才能继续执行的问题。一、什么是互斥量互斥量是另一种用于多线程中的同步访问方法,它允许程序锁住某个对象,使得每次只能有一个线程访问它。为了控制对关键代码的访问,必须在进入这段代码之前锁住一个互斥量,然后在完成操作之后解锁。二、互斥量的函数的使用它们的定义与使用信号量的函
ljianhui
·
2016-10-24 11:43
详解
Linux多线程
使用信号量同步
信号量、同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过是同步的对象不同而已。但是下面介绍的信号量的接口是用于线程的信号量,注意不要跟用于进程间通信的信号量混淆。一、什么是信号量线程的信号量与进程间通信中使用的信号量的概念是一样,它是一种特殊的变量,它可以被增加或减少,但对其的关键访问被保证是原子操作。如果一个程序中有多个线程试图改变一个信号量的值,系统将保证所有的操作都将依
ljianhui
·
2016-10-22 15:35
linux多线程
之屏障
基本概念:屏障(barrier)是用户协调多个线程并行工作的同步机制。屏障允许每个线程等待,直到所有的合作线程都达到某一点,然后从该点继续执行。一、初始化与销毁PTHREAD_BARRIER_DESTROY(P)POSIXProgrammer'sManualPTHREAD_BARRIER_DESTROY(P)NAMEpthread_barrier_destroy,pthread_barrier_i
带鱼兄
·
2016-08-14 14:36
linux之线程操作
linux多线程
之读写锁
基本概念:读写锁也叫做共享互斥锁。当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态,所有试图以读模式对它进行加锁的线程都可以得到访问权。与互斥量相比,读写锁在使用之前必须初始化,在释放它们底层的内存之前必须销毁。一、锁的初始化与销毁PTHREAD_RWLOCK_DESTROY(P)POSIXProgrammer'sManualPTHREAD_R
带鱼兄
·
2016-08-13 21:15
linux之线程操作
Linux之IPC
muduo : Reactor(EventLoop Poller Channel)
Linux多线程
服务器编程6.4.1TCP网络编程最本质的是处理三个半事件:1.连接的建立,包括serveraccept新连接,客户端成功connect.TCP连接一旦建立,server和client的地位是相等的
春泥面包
·
2016-08-10 11:38
muduo
Linux多线程
知识
第一次使用pthread,遇到的问题还真不少,现在我一一记录一下:1.关于编译时出现对‘pthread_create’未定义的引用之类的错误的解决:由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:gcc-opthread-lpthreadpthread.c特别的,如果这样
我的胖是因为太膨胀
·
2016-07-12 14:15
Linux编程学习
linux 多线程信号处理总结
linux多线程
信号总结(一)1.在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函数,具体是哪个线程执行的难以获知。
CobbLiu
·
2016-06-17 01:00
Linux 多线程的线程栈
Linux多线程
的线程栈都会维护自己的一个函数栈,以及指令集 例如N个线程调用prt函数,prt函数内部有局部变量,虽然N个线程的执行顺序是随机的,但是每个线程调用的prt函数的局部变量都是每个线程的线程栈内部维护
innobase
·
2016-05-03 09:00
Linux 多线程 pthread库用法(一)
Linux多线程
pthread库用法(一)
Linux多线程
编程基介绍Linux线程有时候也叫LightWeightProcessLWP轻量级线程,是进程的一个执行流,有自己的执行栈,是操作系统调度的最小单位
thisinnocence
·
2016-04-19 23:00
多线程
操作系统
pthread
Linux多线程
高速下载
有时候,我们用wget下载速度很慢,多数是几十K,下面我们来安装Axel。本文以CentOS7.2为例: 安装EPEL源 yum-yinstallepel-release安装完上面的源后可以直接安装axel,下面先来安装axel,命令为:yuminstallaxel-2.4-9.el7.x86_64.rpm rpm-ivhaxel-2.4-9.el7.x86_64.rpm运行下axel:[root
rznice
·
2016-04-19 22:00
Linux多线程
编程(创建线程)
创建线程创建线程的函数是pthread_create,具体定义如下:[cpp] viewplain copy#include int pthread_create(pthread_t *thread, // 新创建的线程ID const pthread_attr_t *attr, // 线程属性
jiary5201314
·
2016-04-19 16:00
linux多线程
函数pthread_cond_wait
最近找到一篇很好的文章将
linux多线程
函数pthread_cond_wait,是我茅塞顿开,豁然开朗,决定转载过来,以便经常复习记忆。
dupengchuan
·
2016-04-18 22:00
linux
linux接口
【
Linux多线程
同步】条件变量
本文参考自:http://blog.csdn.net/anonymalias/article/details/9174481(anonymalias的专栏)条件变量出自POSIX线程标准,是一种多线程同步机制。主要用来等待某个条件的发生。可以用来同步同一进程中的各个线程。当然如果一个条件变量存放在多个进程共享的某个内存区中,那么还可以通过条件变量来进行进程间的同步。每个条件变量总是和一个互斥量相关
woxiaohahaa
·
2016-04-16 22:00
[置顶] 多进程多线程编程汇总(持续更新中)
消息队列总结实例2、linux进程间通信-----SystemV共享内存总结实例3、linux进程间通信-----管道总结实例4、linux进程间通信-----信号总结5、linux程序多线程互斥锁的简单使用6、
Linux
Linux_ever
·
2016-04-16 19:00
多进程多线程
Linux多线程
与同步
Linux多线程
与同步 典型的UNIX系统都支持一个进程创建多个线程(thread)。在LINUX基础中提到,Linux以进程为单位组织操作,Linux中的线程也都基于进程。
liangzhaoyang1
·
2016-04-13 22:00
linux
Linux多线程与同步
Muduo网络库源码分析(一) EventLoop事件循环(Poller和Channel)
从这一篇博文起,我们开始剖析Muduo网络库的源码,主要结合《
Linux多线程
服务端编程》和网上的一些学习资料!(一)TCP网络编程的本质:三个半事件1.
NK_test
·
2016-04-04 00:00
多线程
源码
linux
网络编程
muduo
linux多线程
编程书籍推荐:linux大牛之路从这几本书开始总结
linux多线程
编程是指基于Linux操作系统下的多线程编程,包括多任务程序的设计,并发程序设计,网络程序设计,数据共享等。Linux系统下的多线程遵循POSIX线程接口,称为pthread。
benpaobagzb
·
2016-04-02 15:50
Linux
C
linux多线程
编程书籍推荐:linux大牛之路从这几本书开始总结
linux多线程
编程是指基于Linux操作系统下的多线程编程,包括多任务程序的设计,并发程序设计,网络程序设计,数据共享等。Linux系统下的多线程遵循POSIX线程接口,称为pthread。
benpaobagzb
·
2016-04-02 15:00
linux多线程
-----同步对象(互斥量、读写锁、条件变量)的属性
线程具有属性,同样用于线程同步的对象也有属性,主要有互斥量、读写锁和条件变量的属性。互斥量属性:#include intpthread_mutexattr_init(pthread_mutexattr_t*attr); intpthread_mutexattr_destroy(pthread_mutexattr_t*attr);互斥量属性对象的数据类型为pthread_mutexattr_t,用
Linux_ever
·
2016-04-01 21:00
线程
互斥量-同步对象属性
Linux多线程
同步之读写锁
读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程。当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步,和互斥量不同的是:互斥量会把试图进入已保护的临界区的线程都阻塞;然而读写锁会视当前进入临界区的线程和请求进入临界区的线程的属性来判断是否允许线程进入。相对互斥量只有加锁和不加锁两种状态,读写锁有三种状态:
a1232345
·
2016-03-31 14:00
多线程
linux
同步
Linux多线程
编程详解 [By: HarryAlex]
本文内容主要参考于《Linux程序设计·第3版》、《Linux环境C程序设计》、《C语言核心技术》、《深入理解计算机系统·第2版》,代码运行环境:Linuxversion3.10.0-123.el7.x86_64(root@bsp4)(gccversion4.8.220140120(RedHat4.8.2-16)(GCC))#1SMPThuJun417:17:49CST20151.Linux进程与
shr986796621
·
2016-03-31 10:00
多线程
编程
线程
linux
C语言
Linux多线程
同步之互斥量和条件变量
1.什么是互斥量 互斥量从本质上说是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其他试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所以在该互斥锁上的阻塞线程都会变成可进行状态,第一个变成运行状态的线程可以对互斥量加锁,其他线程在次被阻塞,等待下次运行状态。pthread_mutex_t就是P
a1232345
·
2016-03-30 23:00
多线程
linux
同步
Linux多线程
同步——信号量
线程同步同步主线程与子线程test.c #include #include #include #include #include #include void*ret_result_thread1; sem_t*sem; void*thread1Func(void*arg) { printf("childThreadid:%uisrunning\n",syscall(SYS_gettid));
WiseClown
·
2016-03-30 21:00
多线程
linux
线程
sem
子线程同步
Linux多线程
——异步
Linux线程异步test.c#include #include #include void*thread1Func(void*arg) { printf("childThread1isrunning\n"); pthread_exit((void*)0); } void*thread2Func(void*arg) { printf("childThread2isrunning\n"); pthr
WiseClown
·
2016-03-30 16:00
线程
linux
异步
Linux多线程
编程---条件变量
条件变量为什么需要条件变量:在多线程编程中仅使用互斥锁来完成互斥是不够用的,如以下情形:假设有两个线程t1和t2,需要这个两个线程循环对一个共享变量sum进行自增操作,那么t1和t2只需要使用互斥量即可保证操作正确完成,线程执行代码如所示:pthread_mutex_tsumlock=PTHREAD_MUTEX_INITIALIZER;void*t1t2(void){pthread_mutex_l
coding__madman
·
2016-03-30 08:04
linux应用编程
Linux多线程
编程---条件变量
条件变量为什么需要条件变量:在多线程编程中仅使用互斥锁来完成互斥是不够用的,如以下情形:假设有两个线程t1和t2,需要这个两个线程循环对一个共享变量sum进行自增操作,那么t1和t2只需要使用互斥量即可保证操作正确完成,线程执行代码如所示:pthread_mutex_tsumlock=PTHREAD_MUTEX_INITIALIZER; void*t1t2(void) { pthread_mute
·
2016-03-30 08:00
多线程
编程
linux
Linux多线程
编程---2
1.线程概念:线程是包含在进程内部的顺序执行流,是进程中实际运作单位,也是操作系统能够进行调度的最小单位,一个进程中可以并发多条线程,每条线程并行执行不同的任务。2.线程与进程的关系1>一个线程只能属于一个进程,但是一个进程可以有多个线程,但至少有一个主线程。2>同一进程的所有线程共享该进程的所有资源。3>线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。4>进程是拥有资源的一个独立单位,
coding__madman
·
2016-03-29 17:02
linux应用编程
Linux多线程
编程---2
1.线程概念:线程是包含在进程内部的顺序执行流,是进程中实际运作单位,也是操作系统能够进行调度的最小单位,一个进程中可以并发多条线程,每条线程并行执行不同的任务。2.线程与进程的关系 1>一个线程只能属于一个进程,但是一个进程可以有多个线程,但至少有一个主线程。 2>同一进程的所有线程共享该进程的所有资源。 3>线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。 4>进程是拥有资源
·
2016-03-29 17:00
多线程
编程
linux
Linux多线程
同步的几种方式
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。1)互斥锁(mutex) 通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。intpthread_mutex_init(pthread_mutex_t*mutex,constpthread_mutex_attr_t*mu
u010147215
·
2016-03-28 15:00
linux 多线程的实现的基本原理
1.
linux多线程
的基本概念linux是多用户、多任务的并发执行;所谓的并发是通过多进程、多线程来实现的;1).其中多进程有3种方式:单机多实例(机器复用,一台机器启动多个进程,每个进程干自己的事情)
caoshuming_500
·
2016-03-28 11:33
Linux运维
linux 多线程的实现的基本原理
1.
linux多线程
的基本概念 linux是多用户、多任务的并发执行;所谓的并发是通过多进程、多线程来实现的; 1).其中多进程有3种方式:单机多实例(机器复用,一台机器启动多个进程,每个进程干自己的事情
caoshuming_500
·
2016-03-28 11:00
Linux多线程
面试题
前面的选择题那些跳过,直接看最后的编程题。第三题(某培训机构的练习题):子线程循环10次,接着主线程循环100次,接着又回到子线程循环10次,接着再回到主线程又循环100次,如此循环50次,试写出代码。第四题(迅雷笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。第五题(
weiyuefei
·
2016-03-25 20:00
Linux多线程
pthread_key_create
Linux多线程
应用编程pthread_key_create示例代码:#include #include #include pthread_key_tkey; structfor_test{ inti
liushuimpc
·
2016-03-24 16:00
Linux多线程
编程小结
Linux多线程
编程小结 前一段时间因为开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,很烦躁的说,现在抽个时间把之前所学的做个小节。
u013485792
·
2016-03-24 15:00
多线程
linux多线程
-----同步机制(互斥量、读写锁、条件变量)
linux多线程
同步机制主要有:互斥量,读写锁,条件变量。
Linux_ever
·
2016-03-23 21:00
读写锁
互斥量
条件变量
linux多线程
同步机制
Linux多线程
编程——多线程与线程同步
多线程使用多线程好处:一、通过为每种事件类型的处理单独分配线程,可以简化处理异步事件的代码,线程处理事件可以采用同步编程模式,启闭异步编程模式简单二、方便的通信和数据交换 由于进程之间具有独立的数据空间,多进程必须使用操作系统提供的复杂机制才能实现内存和文件描述符的共享,导致上下文切换的开销比较大。而线程之间共享进程的所有资源,所以,多线程可以访问相同的存储空间和文件描述符。三、对一些不具有互
wj_hubei
·
2016-03-22 11:53
Linux多线程
同步——互斥锁
互斥锁当多个线程对同一个资源进行访问的时候,为了这个资源的安全性,我们需要对这个资源进行锁定,规定同一时间只有一个资源能够获得该锁的钥匙,其它线程要获得该资源需要等待该线程互斥锁创建pthread_mutex_tmutex;互斥锁初始化mutex=PTHREAD_MUTEX_INITIALIZER;或pthread_mutex_init(&mutex);互斥锁上锁pthread_mutex_loc
WiseClown
·
2016-03-18 10:00
多线程
线程
linux
安全
互斥锁-mutex
设计模式(三)观察者模式Observer(发布订阅)
本文代码来自陈硕《
Linux多线程
服务端编程:使用muduoC++网络库》观察者模式的目的是让博客更新之后,所有订阅了博客的人都能得到通知这里使用了智能指针来实现,从而完整的解决了资源管理的问题。
CalmReason
·
2016-03-15 11:51
设计模式
Linux多线程
同步的几种方式
线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。1)互斥锁(mutex) 通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。intpthread_mutex_init(pthread_mutex_t*mutex,constpthread_mutex_attr_t*mu
lien0906
·
2016-03-10 15:00
Linux多线程
——使用信号量同步线程
信号量、同步这些名词在进程间通信时就已经说过,在这里它们的意思是相同的,只不过是同步的对象不同而已。但是下面介绍的信号量的接口是用于线程的信号量,注意不要跟用于进程间通信的信号量混淆,关于用于进程间通信的信号量的详细介绍可以参阅我的另一篇博文:Linux进程间通信——使用信号量。相似地,线程同步是控制线程执行和访问临界区域的方法。一、什么是信号量线程的信号量与进程间通信中使用的信号量的概念是一样,
lien0906
·
2016-03-10 15:00
Linux多线程
编程之线程控制
函数预览pthread_tpthread_id;int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);//线程创建 thread指向存放创建线程的idattr设置创建线程的属性start_routine新线程要执行的函数arg传给st
ZongYinHu
·
2016-03-08 14:00
多线程知识点
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他