Linux多线程编程小结 前一段时间由于开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,非常烦躁的说,如今抽个时间把之前所学的做个小节。文章内容主要总结于《Linux程序设计第3版》。1.Linux进程与线程 Linux进程创建一个新线程时,线程将拥有自己的栈(由于线程有自己的...
分类:
编程语言 时间:
2014-10-22 12:26:46
阅读次数:
298
摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,由于线程间能够共享数据结构,也就是一个全局变量能够被两个线程同一时候使用。只是要注意的是线程间须要做好同步,一般用mutex。能够參考一些比較新的UNIX/Linux编程的书,都会提到Posix线程编程,比方《UNIX环境高...
分类:
编程语言 时间:
2014-10-19 22:43:32
阅读次数:
712
Python主要通过标准库中的threading包来实现多线程。
当今网络时代,每个服务器都会接收到大量的请求。服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率。
Python是一种网络服务器的后台工作语言 (比如豆瓣网),所以多线程也就很自然被Python语言支持。
多线程售票以及同步
我们使用Python来实现Linux多线程与同步文中的售票程序。
我们使用m...
分类:
编程语言 时间:
2014-10-17 10:18:21
阅读次数:
233
转自 http://blog.csdn.net/hongmy525/article/details/5194006#include #include #include pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/pthrea...
分类:
编程语言 时间:
2014-09-28 10:49:11
阅读次数:
290
一、什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立执行的基本单位。线程自己基本上不拥有系统资源,仅仅拥有一点在执行中不可缺少的资源(如程序计数器,一组寄存器和栈),可是它可与同属一个进程的其它的线程共享进程所拥有的所有资源。二、什么时候使用多线程? 当...
分类:
编程语言 时间:
2014-09-24 14:51:06
阅读次数:
201
#include #include #include #include int ticket_cnt = 20; /* 共有20张票 */typedef struct tag{ int s_id; pthread_mutex_t *s_p;}DATA,*pDATA;void* h...
分类:
编程语言 时间:
2014-09-09 12:13:48
阅读次数:
208
一般情况,在 Linux 下我们习惯于用 wget 下载,但该工具的缺点就是无法进行多线程下载,所以往往有时候速度不够快。这里介绍的 Axel,是 Linux 下一款不错的 HTTP 或 FTP 高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件,适合网...
分类:
编程语言 时间:
2014-09-01 21:02:03
阅读次数:
282
需求 客户端将需要解决的task发送给服务器,服务器调用线程来解决客户端发送的task,解决完由线程负责将其发送回客户端。(用管道实现通信) 思路 1. server维护两个列表。一是客户端列表。二是任务列表。分别如下: /* 客户端列表 */ typedef struct tag_fds{ int...
分类:
编程语言 时间:
2014-08-27 01:38:56
阅读次数:
359
思路 生产者和消费者(互斥与同步)。资源用队列模拟(要上锁,一个时间只能有一个线程操作队列)。 m个生产者。拿到锁,且产品不满,才能生产。当产品满,则等待,等待消费者唤醒。当产品由空到不空,通知消费者。n个消费者。拿到锁,且有产品,才能消费。当产品空,则等待,等待生产者唤醒。当产品由满到不满,通知生...
分类:
编程语言 时间:
2014-08-27 01:31:26
阅读次数:
380
引言 条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待条件变量的条件成立而挂起(此时不再占用cpu);另一个线程使条件成立(给出条件成立信号)。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 函数原型 1. 定义条件变量 #include /* 定义两个...
分类:
编程语言 时间:
2014-08-26 22:47:16
阅读次数:
343