原文地址:http://blog.csdn.net/liang890319/article/details/8393120   进程简单的说就是把一段代码复制成多份,并让他们同时执行.进程间通信是为了让他们有序的运行 线程简单的说就是让多个函数同时执行,线程间通信是为了让他们有序的运行 编译线程程序时会警告说线程函数找不到 pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread…
(转载)在嵌入式Linux中,串口是一个字设备,访问具体的串行端口的编程与读/写文件 的操作类似,只需打开相应的设备文件即可操作.串口编程特殊在于串 口通信时相关参数与属性的设置.嵌入式Linux的串口编程时应注意,若在根文件中没有串口设备文件,应使用mknod命令创建,这这里假设串口设备是 /dev/ttyS0,介绍一下串口的编程过程.#mknod /dev/ttyS0 c 4 641.打开串口    打开串口设备文件的操作与普通文件的操作类似,都采用标准的I/O操作函数open().    …
在linux平台下,用多线程实现echo服务器与客户端“一对多”(即是一台服务器可以响应多个客户端的请求).本人写了个demo,和大家一起分享,有不足的地方,请多多指教,我是壮壮熊. 编译时,在后面加上-lpthread.例如:g++ service2.cpp -o service2 -lpthread.否则会提示线程方面的错误. echo服务器端代码: #include<stdio.h> #include<stdlib.h> #include<sys/socket.h>…
线程的操作 线程标识 线程的ID表示数据类型:pthread_t (内核中的实现是unsigned long/unsigned int/指向pthread结构的指针(不可移植)几种类型) 1.对两个线程ID进行比较 #include <pthread.h> int pthread_equal(pthread_t tid1, pthread tid2); //返回值:若相等则返回非0值,不相等返回0 2.获取自身的线程id #include <pthread.h> pthread_t…
多线程编程 涉及操作系统原理概念 时间片 进程状态 上下文: 对进程来说,就是进程的执行环境,具体就是各个变量和数据,包括所有的寄存器变量.打开的文件.内存信息等. 进程的写时复制:由于一般 fork后面都接着exec,所以,现在的 fork都在用写时复制的技术,顾名思意,就是,数据段,堆,栈,一开始并不复制,由父,子进程共享,并将这些内存设置为只读.直到父,子进程一方尝试写这些区域,则内核才为需要修改的那片内存拷贝副本.这样做可以提高 fork的效率. 线程函数的可重入性:所谓“重入”,常见的…
博客内容参考自 http://www.cnblogs.com/xuxm2007/archive/2011/04/01/2002162.html http://blog.csdn.net/pbymw8iwm/article/details/7876797 gdb手册(调试多个程序章节+调试多线程进程章节) GDB多线程调试 基本命令 info threads  显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID. 前面有*的是当前调试的线程. thre…
概述 每一个进程都拥有自己的数据段.代码段和堆栈段.这就造成进程在进行创建.切换.撤销操作时,须要较大的系统开销. 为了降低系统开销,从进程中演化出了线程.为了让进程完毕一定的工作.进程必须至少包括一个线程.线程存在于进程中,共享进程的资源. 很多其它详情.请看<进程和线程的差别与联系>. 就像每一个进程都有一个进程号一样.每一个线程也有一个线程号. 进程号在整个系统中是唯一的,但线程号不同,线程号仅仅在它所属的进程环境中有效.进程号用 pid_t 数据类型表示.是一个非负整数.线程号则用 p…
当你点击看到这篇文章的时候.你已经得到了祝福. 一个来自夜深人静的码农,在2014年5月19号的01:18分.默默为你献上祝福. 希望你.我和他,每个在IT行业中奋斗的人.能找到属于自己一片天空. 在翻译结束完3.2.3这份文档后.首先感谢我的客户经理,当在面试的过程中让我产生翻译文档的想法. 也就開始了我第一次翻译技术文档的路程.当刚開始翻译的时候,不知道默默问了多少遍.究竟能不能能够完毕这项任务.有没有耐心坚持究竟?后来不由回忆起去年单车去西藏的经历,事实上人非常easy被别人的言语所吓住,…
在多线程程序中.常常要用全局变量来实现多个函数间的数据共享.因为数据空间是共享的,因此全局变量也为全部线程共同拥有. 測试代码例如以下: #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <stdlib.h> int key = 100; //全局变量 void *helloworld_one(void *arg) { printf("the message i…
(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端        在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序. 比如我们使用ftp程序从另外一        个地方获取文件的时候,是我们的ftp程序主动同外面进行通信(获取文件), 所以这个地方我们的ftp程序就是客户端程序. 服务端        和客户端相…