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多线程
学习(六)——信号量实现同步
在上一篇文章中已经用信号量来实现线程间的互斥,达到了互斥锁的效果,今天这篇文章将讲述怎样用信号量去实现同步。信号量的互斥同步都是通过PV原语来操作的,我们可以通过注册两个信号量,让它们在互斥的问题上互动,从而达到同步。通过下面实例就可以很容易理解: [cpp] viewplaincopy#include #include #include #include #i
BBZZ2
·
2016-02-01 17:00
linux多线程
学习(五)——信号量线程控制
在上一篇文章中,讲述了线程中互斥锁的使用,达到对共享资源互斥使用。除了使用互斥锁,信号量,也就是操作系统中所提到的PV原语,能达到互斥和同步的效果,这就是今天我们所要讲述的信号量线程控制。PV原语是对整数计数器信号量sem的操作,一次P操作可使sem减一,而一次V操作可是sem加一。进程(或线程)根据信号量的值来判断是否对公共资源具有访问权限。当信号量的值大于零或等于零的时候,该进程(或线程)
BBZZ2
·
2016-02-01 17:00
linux多线程
学习(四)——互斥锁线程控制
在前面的文章中提及到,一个进程中的多个线程是共享同一段资源的,由于线程对资源的竞争引出了锁。其中mutex是一种简单的加锁方法,这个互斥锁只有两种状态,那就是上锁和解锁,可以把互斥锁看作是某种意义上的全局变量。在某一时刻,只能有一个线程取得这个互斥上的锁,拥有上锁状态的线程可以对共享资源进行操作,而其他线程在该线程未解锁之前,够会被挂起,直到上锁的线程解开锁。可以这么说,互斥锁使得共享资源按序
BBZZ2
·
2016-02-01 17:00
linux多线程
学习(三)——线程属性设置
在上一篇文章中,介绍了线程的创建和退出,以及相关函数的使用。其中pthread_create函数的第二个参数,是关于线程属性的设置,这也是今天所有讲述的。这些属性主要包括邦定属性、分离属性、堆栈地址、堆栈大小、优先级。其中系统默认的是非邦定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。(1)邦定属性。
BBZZ2
·
2016-02-01 14:00
linux多线程
学习(二)——线程的创建和退出
在上一篇文章中对线程进行了简单的概述,它在系统中和编程的应用中,扮演的角色是不言而喻的。学习它、掌握它、吃透它是作为一个程序员的必须作为。在接下来的讲述中,所有线程的操作都是用户级的操作。在LINUX中,一般pthread线程库是一套通用的线程库,是由POSIX提出的,因此他的移植性是非常好的。 创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_crea
BBZZ2
·
2016-02-01 14:00
linux多线程
学习(一)
进程是系统中程序执行和资源分配的基本单位。每个进程都有自己的数据段,代码段和堆栈段,这就导致了进程在进行切换等操作起到了现场保护作用。但是为了进一步减少处理机的空转时间支持多处理器和减少上下文切换开销,进程演化中出现了另外一个概念,这就是线程,也被人称为轻量级的进程。它是一个进程内的基本调度单位。线程是在共享的内存空间中并发的多道执行路径,它们共享一个进程的资源,比如文件描述符和信号处理等。因
BBZZ2
·
2016-02-01 14:00
《实战Java高并发程序设计》问答录,看这些问题解决你所有java并行难题
Java作为
服务端编程
使用最广泛的语言,必然需要和多核CPU打交道,那Java为我们提供了哪些并发编程的工具?与《实战Java高并发程序设计》相关的技术点,参考本书的思维导图(点击)。
吴小编
·
2016-01-22 17:00
java
jvm
并发
Java进阶-多线程
可参考
Linux多线程
与同步
Facker
·
2016-01-21 11:00
java
多线程
synchronized
Linux多线程
实践(六)使用Posix条件变量解决生产者消费者问题
前面的一片文章我们已经讲过使用信号量解决生产者消费者问题,那么什么情况下我们需要引入条件变量呢?这里借用 http://www.cnblogs.com/ngnetboy/p/3521547.html的解释:假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前
NK_test
·
2016-01-15 18:00
linux
条件变量
生产者消费者问题
posix
Linux 系统应用编程——多线程经典问题(生产者-消费者)
“生产者——消费者”问题是
Linux多线程
编程中的经典问题,主要是利用信号量处理线程间的同步和互斥问题。
zqixiao_09
·
2016-01-10 12:00
多线程
linux
C语言
应用
linux多线程
并发
多线程并发进程和线程的概念进程进程包括程序映象、地址空间等要素。内核采用PCB来管理进程。进程是内核进行调度的基本单元,每个独立的进程都有自己的代码段、数据段以及堆栈,它们有自己的虚拟地址空间,多个进程间互不影响。线程在linux系统中,实际上,线程和进程都是以统一的方式来管理的。线程也是内核进行调度的基本单元。不同点在于:线程没有自己独立的地址空间,创建出来的新线程将和创建它的进程(或线程)共享
Qwells
·
2016-01-08 17:00
Linux 系统应用编程——线程基础
传送门:
Linux多线程
编程实例解析.
linux多线程
编程——同步与互斥.
zqixiao_09
·
2016-01-07 17:00
编程
linux
线程
C语言
Linux多线程
实践(五 )Posix信号量和互斥锁解决生产者消费者问题
Posix信号量和SystemV信号量的一点区别:systemv信号量只能用于进程间同步,而posix信号量除了可以进程间同步,还可以线程间同步。systemv信号量每次PV操作可以是N,但Posix信号量每次PV只能是1。除此之外,posix信号量还有命名和匿名之分(man7sem_overview):Posix 信号量有名信号量无名信号量sem_opensem_initsem_closese
NK_test
·
2016-01-03 19:00
多线程
linux
读写锁
生产者消费者问题
posix
Linux多线程
实践(四 )线程的特定数据
在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据, 然而在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。但有时应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有效,但却可以跨多个函数访问。POSIX线程库通过维护一定的数据结构来解决这个问题,这个些数据称为(Thread-specific-data或 TSD)。相关函数如下:intpthread_k
NK_test
·
2016-01-02 21:00
多线程
线程
linux
线程特定数据
Linux多线程
实践(三)线程的基本属性设置API
POSIX 线程库定义了线程属性对象 pthread_attr_t ,它封装了线程的创建者可以访问和修改的线程属性。主要包括如下属性:1. 作用域(scope)2. 栈尺寸(stack size)3. 栈地址(stack address)4. 优先级(priority)5. 分离的状态(detached state)6. 调度策略和参数(scheduling policy and paramete
NK_test
·
2016-01-01 18:00
线程
linux
C语言
posix
线程属性
Linux多线程
实践(二)线程基本API(POSIX)
我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用进程间通信机制,有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同时下载多个文件,等待和处理从多个网络主机发来的数据,这些任务都需要一个“等待-处理”的循环,可以用多线程实现,一个线程专门负责与用户交互,另外
NK_test
·
2015-12-28 22:00
多线程
linux
线程
api
posix
Linux多线程
实践(一)线程基本概念和理论
线程概念 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列/指令序列”; 对于每个进程至少有一个执行线程;进程 VS. 线程 1.进程是资源分配(进程需要参与资源的竞争)的基本单位,而线程是处理器调度(程序执行)的最小单位; 2.线程共享进程数据,但也拥有自己的一部分数据,如 线程ID、一组寄存器、堆栈、errno(错误代码)、信号状
NK_test
·
2015-12-16 12:00
多线程
linux
操作系统
进程
理论
linux多线程
编程——同步与互斥
我们在前面文章中已经分析了多线程VS多进程,也分析了线程的使用,现在我们来讲解一下
linux多线程
编程之同步与互斥。现在,我们不管究竟是多线程好还是多进程好,先讲解一下,为什么要使用多线程?
zqixiao_09
·
2015-12-15 17:00
多线程
编程
linux
线程
Linux多线程
编程实例解析
Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查看有关文档说明。下面我们
zqixiao_09
·
2015-12-14 18:00
多线程
linux
线程
实例
linux多线程
编程信号量的使用
信号是E.W.Dijkstra在二十世纪六十年代末设计的一种编程架构。Dijkstra的模型与铁路操作有关:假设某段铁路是单线的,因此一次只允许一列火车通过。信号将用于同步通过该轨道的火车。火车在进入单一轨道之前必须等待信号灯变为允许通行的状态。火车进入轨道后,会改变信号状态,防止其他火车进入该轨道。火车离开这段轨道时,必须再次更改信号的状态,以便允许其他火车进入轨道。在计算机版本中,信号以简单整
学习环境
·
2015-12-14 15:00
编程
C++
linux
开发
Oracled数据库的进一步理解
阅读更多--PL/SQL编程--SQL:StructedQueryLanguage--PL:ProcedureLanguage--是对sql语言的补充--为什么需要PL/SQL编程[在数据库
服务端编程
]
leaf-stop
·
2015-12-12 13:00
oracle
PL/SQL块
游标
触发器
Oracled数据库的进一步理解
--SQL: StructedQueryLanguage--PL: ProcedureLanguage --是对sql语言的补充 --为什么需要PL/SQL编程[在数据库
服务端编程
leaf-stop
·
2015-12-12 13:00
oracle
触发器
PL/SQL块
游标
Oracled数据库的进一步理解
阅读更多--PL/SQL编程--SQL:StructedQueryLanguage--PL:ProcedureLanguage--是对sql语言的补充--为什么需要PL/SQL编程[在数据库
服务端编程
]
leaf-stop
·
2015-12-12 13:00
oracle
PL/SQL块
游标
触发器
我们都掉进了一个大坑——高并发程序设计
并行计算只有在图像处理和
服务端编程
2 个领域可以使用,并且它在这 2 个领域确实有
文森特梵高
·
2015-12-09 09:00
并行
Linux多线程
消费者和生产者模型实例(互斥锁和条件变量使用)
条件变量简单介绍:条件变量是线程可以使用的另一种同步机制。条件变量与互斥量一起使用的时候,允许线程以无竞争的方式等待特定的条件发生。条件本身是由互斥量保护的。线程在改变条件变量状态前必须先锁住互斥量。另一种是动态分配的条件变量,则用pthread_cond_init函数进行初始化。在释放底层的内存空间之前,可以使用pthread_cond_destroy对条件变量进行去初始化。条件变量在使用前必须
Linux_ever
·
2015-12-08 11:00
多线程
linux
互斥锁
条件变量
消费者和生产者模型
基于Netty5.x的轻量级http服务器——CoolBreeze
一.WhatisNetty1.基于NIO的客户端,
服务端编程
框架,JBOSS提供2.提供异步的,基于事件驱动的网络应用程序框架和工具3.提供多种编解码框架集成,高效网络传输4.提供方便快捷的可定制化的私有协议栈开发
清风傲剑
·
2015-12-01 18:00
浅析linux服务端socket编程
记得大一第一次接触linux
服务端编程
时,当时看的linuxc编程实战中有如下一副示意图上图虽然简单,但是却包含了我们编写服务器客户端程序时所有的最基本的接口。
Shreck66
·
2015-12-01 00:00
socket
tcp
服务端编程
socket编程
Linux多线程
总结
1进程环境 C程序总是从main函数开始执行。main函数的原型是: int main(int argc, char* argv[]); 当内核执行C程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程。启动例程从内核取得命令行参数和环境变量值,然后调用main函数。1.1进程终止 有8种方式能种子进程,其中5种是正常终止,3种是异常终止。正常:从main返回;
胡腾飞
·
2015-11-29 13:00
c++ 孟岩推荐 书籍
+标准程序库对于c++熟手来说更为快捷effectivec++ 永远是初学者必读的,但是c++11标准后的第四版,还未发布c++concurrencyinaction是学习c++开发并发程序的最佳选择
linux
Google 手机开发
·
2015-11-27 13:00
ajax接口之一:登录退出系统
为了方便BS或手机端访问系统,扩展功能,我们在平台中,支持了ajax接口,通过
服务端编程
和客户端javascript配合,可以实现登录系统,获取信息,调用服务等功能。
leejunki822
·
2015-11-25 16:00
ajax接口之一:登录退出系统
为了方便BS或手机端访问系统,扩展功能,我们在平台中,支持了ajax接口,通过
服务端编程
和客户端javascript配合,可以实现登录系统,获取信息,调用服务等功能。
fishwood9701
·
2015-11-25 16:09
JavaScript
服务端
客户端
用户名
登录系统
linux 多线程编程
1.
Linux多线程
介绍线程的概念早在上世纪60年代就被提出,知道上世纪80中期才被真正使用起来。
Jeanphorn
·
2015-11-24 18:00
多线程
linux
Linux线程同步
在
Linux多线程
程序编写的时候,很多时候会遇到这样的报错:stackoverflow。它指的就是当前线程分配的堆栈空间已经用完了,内存中堆栈的顶部已经
EastblueOkay
·
2015-11-20 08:27
LinuxC
linux多线程
程序设计
1、核心理论为什么需要线程?为了提高完成一个任务的速度,我们创建了多个进程去完成一个任务,但是多个进程间有相同的地方(例如代码相同,所使用的数据相同),同时工作时就造成了资源的浪费;为了避免资源浪费,我们进程间相同的部分分割出来,不同的部分就形成了一个小小的线程。线程概念(特点):·线程就是“轻量级”的进程。(linux中不存在线程这个机制)·线程与创建他的进程共享代码段、数据段。·线程拥有自己的
liusirboke
·
2015-11-17 18:00
多线程
互斥锁
linux进程间通信
C#网络编程(异步传输字符串) - Part.3
这篇文章我们将前进一大步,使用异步的方式来对
服务端编程
,以使它成为一个真正意义上的服务器:可以为多个客户端的多次请求服务。但是开始之前,我们需要解决上一节中遗留的一个问题。
·
2015-11-13 22:18
网络编程
细说 ASP.NET控制HTTP缓存
细说 ASP.NET控制HTTP缓存 阅读目录 开始 正常的HTTP请求过程 缓存页的请求过程 缓存页的
服务端编程
什么是304应答?
·
2015-11-13 22:59
asp.net
linux多线程
同步
我们将会使用两个工具同步线程:mutexes和condition variables。线程的好处之一就是使用全局变量共享信息。当然,共享是要付出代价的,由此产生同步问题。 首先,如下代码:加入我们输入两个数字,10000000, 10000000,我们的期望值应该是两个数相加:20000000,但是实际结果当然不是,一般比20000000小。产生该结果的原因就是两个线程同时访问了全局变量。
·
2015-11-13 21:06
linux
linux多线程
1、进程与线程 这是个老生常谈的话题,我们只需要记住: 进程可是一个资源的基本单位,而线程是程序调度的基本单位,一个进程内部的线程之间共享进程获得的时间片。线程拥有自己的栈,因为线程有自己的局部变量,其他的资源(文件描述字,全局变量等)和其他线程共享。 2、有关线程的函数 int pthread_create(pthread_t *thread, pthread_attr_t *attr,
·
2015-11-13 21:05
linux
Linux多线程
编程小结
Linux多线程
编程小结 前一段时间由于开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,
·
2015-11-13 18:11
linux
linux多线程
#include <pthread.h> pthread_t pid; pthread_create(&pid, 0, pFunc, pArgs); //创建线程(linux下线程是一种轻量级进程, 与windows的线程概率不一样, 所以sleep也只会使当前线程暂停 void *ptr; pthread_join(pid, ptr); //这个函数, 会等待pid线
·
2015-11-13 15:17
linux
linux多线程
的总结(pthread用法) - cy163 - 博客园
linux多线程
的总结(pthread用法) - cy163 - 博客园
linux多线程
的总结(pthread用法) #include int pthread_create(pthread_t
·
2015-11-13 15:32
pthread
一个例子玩转
linux多线程
问题(创建 执行 条件变量 ......)
一个例子玩转
linux多线程
问题(创建 执行 条件变量 ......)
·
2015-11-13 13:03
linux
Linux多线程
编程的时候怎么查看一个进程中的某个线程是否存活
pthread_kill: 别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。 int pthread_kill(pthread_t thread, int sig); 向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默
·
2015-11-13 11:31
linux
linux多线程
编程
原文地址:http://www.cnblogs.com/BiffoLee/archive/2011/11/18/2254540.html 1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在
·
2015-11-13 07:23
linux
Linux多线程
编程
前言:有这样一道面试题(来自http://blog.csdn.net/morewindows/article/details/7392749): “编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。” 我们就从这样一题出发,认识多线程,
·
2015-11-13 05:33
linux
Linux多线程
——使用互斥量同步线程
前文再续,书接上一回,在上一篇文章:
Linux多线程
——使用信号量同步线程中,我们留下了一个如何使用互斥量来进行线程同步的问题,本文将会给出互斥量的详细解说,并用一个互斥量解决上一篇文章中,要使用两个信号量才能解决的
·
2015-11-13 04:00
linux
Linux多线程
的一个小例子
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #define MAX_COUNT 9 pthread_mutex_t mutex; //互斥变量 pthread_cond_t cond; //条件变量 int count
·
2015-11-13 00:08
linux
linux多线程
扫描器
linux多线程
扫描器 刺猬@http://blog.csdn.net/littlehedgehog 那个深入浅出驱动程序系列文章后面作者似乎有些心不在焉,文章草草了事,还是自己来看看相关的书吧
·
2015-11-12 23:50
linux
Linux多线程
(三)(同步互斥)
1. 线程的同步与互斥 1.1. 线程的互斥 在Posix Thread中定义了一套专门用于线程互斥的mutex函数。mutex是一种简单的加锁的方法来控制对共享资源的存取,这个互斥锁只有两种状态(上锁和解锁),可以把互斥锁看作某种意义上的全局变量。为什么需要加锁,就是因为多个线程共用进程的资源,要访问的是公共区间时(全局变量),当一个线程访问的时候,需要加上锁以防止另外的线程对它进行访问,实
·
2015-11-12 22:14
linux
Linux多线程
(二)(线程等待,退出)
1. 线程的等待退出 1.1. 等待 线程退出 线程从入口点函数自然返回,或者主动调用pthread_exit()函数,都可以让线程正常终止 线程从入口点函数自然返回时,函数返回值可以被其它线程用pthread_join函数获取 pthread_join原型为: #include <pthread.h> int pthread_join(pthread_t th, void
·
2015-11-12 22:13
linux
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
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
其他