多线程(Multithreading)
文章平均质量分 73
iamlate
这个作者很懒,什么都没留下…
展开
-
多线程网络编程的一个错误----在论坛和群里多次见到别人遇到
错误提示如下:QObject: Cannot create children for a parent that is in a different thread. 由于想要在线程中保留一个socket,以便维持双边通信,因此定义如下:SocketThread转载 2011-08-06 08:45:17 · 1761 阅读 · 0 评论 -
一个简单的互斥锁的例子
/*thread_example.c : c multiple thread programming in linux */#include#include#include#include#define MAX1 10#define MAX2 30pthread_t thread[2];pthread_mutex_t mut;int number=0,转载 2011-10-25 01:42:45 · 1374 阅读 · 0 评论 -
不能两次使用waitpid等待一个子进程的结束
无意中在主线程和SIGCHLD信号函数中,同时使用了waitpid,结果waitpid不返回子进程pid了原创 2011-10-27 17:43:00 · 959 阅读 · 0 评论 -
父子进程之间的参数传递和数据返回 pthread_create & pthread_join
自己睡不着敲着玩的,第一个程序是主线程传递一个结构体地址给子线程,第二个传递字符串,第三个是子线程通过pthread_exit()传递数据,然后pthread_join阻塞那里捕获。 int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr,原创 2011-10-27 02:43:18 · 2795 阅读 · 0 评论 -
信号量和进程共享内存的小例子
semm.h#include #include #include #include #include #include typedef int sem_t;union semun{ int val; struct semid_ds *buf; unsigned short *array;} arg;sem_t CreateSem(key_t key, int转载 2011-10-26 15:18:42 · 843 阅读 · 0 评论 -
Linux进程间通信(一)——管道、信号量
一、Linux进程间通信方式 :有六种方式在两个程序间传递信息 1、信号( Singal ) 2、管道 ( Pipe ) 及有名管道 3、信号量 ( Semaphore ) 4、共享内存 ( SharedMessage) 5、消息队列 ( MessageQueue )转载 2011-10-25 00:42:07 · 805 阅读 · 1 评论 -
linux系统调用之ftok()
ftok原型如下: key_t ftok( char * fname, int id ) fname就时你指定的文件(存在,可以访问的)名,id是子序号。先来简单的叙述一下,如果不太清楚的话,再接着向下看: ftok函数是根据pathname和id来创建一个关键转载 2011-10-25 18:06:42 · 716 阅读 · 0 评论 -
Linux进程间通信(二)——共享内存、消息队列
一、共享内存 最高效的进程间通信机制。多个进程共享一段内存。需要依靠某种同步机制,如互斥锁或信号量。 通常步骤为:创建 -> 映射 -> 使用 -> 撤销映射 ->删除 相关函数可以参考:Linux 共享内存#include #includ转载 2011-10-25 00:45:41 · 710 阅读 · 0 评论 -
进程返回值
#include #include #include int main(){pid_t pid;int status;if((pid = fork()) printf("fork error");else if(pid == 0)exit(7);if(wait(&status) != pid)printf("wait error");转载 2011-10-24 16:27:04 · 514 阅读 · 0 评论 -
linux socket的select函数例子
使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。1. 程序使用了一个数组fd_A,通信开始后把需要通信的多个socket描述符都放入此数转载 2011-10-19 01:32:52 · 5220 阅读 · 2 评论 -
Linux网络编程. 服务器模型(软件工程节选)
学习过《软件工程》吧.软件工程可是每一个程序员"必修"的课程啊.如果你没有学习过, 建议你去看一看. 在这一章里面,我们一起来从软件工程的角度学习网络编程的思想.在我们写程序之前, 我们都应该从软件工程的角度规划好我们的软件,这样我们开发软件的效率才会高. 在网络程序里面,一般的转载 2011-10-19 01:11:11 · 663 阅读 · 0 评论 -
Linux select() 详解
select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。0、1、2三个,0是标准输入,1是标准输出,2是标准错误输出。0、1、2是整数表示的转载 2011-10-19 01:06:27 · 1293 阅读 · 0 评论 -
深入UNIX编程:一个简单聊天室的两种实现 (fcntl 和 select)
在互联网相当普及的今天,在互联网上聊天对很多“网虫”来说已经是家常便饭了。聊天室程序可以说是网上最简单的多点通信程序。聊天室的实现方法有很多,但都是利用所谓的“多用户空间”来对信息进行交换,具有典型的多路I/O的架构。一个简单的聊天室, 从程序员的观点来看就是在多个I/O端点转载 2011-10-19 01:13:04 · 585 阅读 · 0 评论 -
linux tcp并发式服务器应用SELECT函数编写实例源代码(转载)
#include #include #include #include #include #include #include #include #include #define MYPORT 1234 // the port user转载 2011-10-18 23:50:15 · 4310 阅读 · 0 评论 -
同步/异步与阻塞/非阻塞的区别
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.首先来解释同步和异步的概念,这转载 2011-09-28 20:33:38 · 390 阅读 · 0 评论 -
WinSock I/O系列1:多路复用I/O支持多Client的实现及效率讨论
1. 引言多路复用I/O模型(select)是UNIX/LINUX用得的最多的一种I/O模型,在Windows下也可做为一种同步I/O使用。本文给出该I/O模型处理多Client的简单(在主线程中)实现。2. 关于selectselect I/O模型是一种异步I/O模型,在单线程中Linux/WinNT默认支持64个客户端套接字。这种转载 2011-10-19 01:18:24 · 939 阅读 · 0 评论