??
LINUX程序设计最重要的当然是进程与线程。本文主要以uart程序结合键盘输入控制uart的传输。
硬件平台:树莓派B+
软件平台:raspberry
需要工具:USB转TTL(PL2303)+GCC
程序设计
首先声明,在LINUX中已经集成了PL2303的驱动,不用装驱动。
串口简介
串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 R...
分类:
编程语言 时间:
2014-10-28 09:28:15
阅读次数:
335
前言 本文基于顺序循环队列,给出Linux生产者/消费者问题的多线程示例,并讨论编程时需要注意的事项。文中涉及的代码运行环境如下: 本文假定读者已具备线程同步的基础知识。一 顺序表循环队列1.1 顺序循环队列定义 队列是一种运算受限的先进先出线性表,仅允许在队尾插入(入队),在队首删除(出队)...
分类:
编程语言 时间:
2014-10-16 19:22:33
阅读次数:
428
(1)用户级线程
主要解决的是上下文切换的问题,它的调度算法和调度过程会全部由用户自行选择解决,在运行时不需要特定的内核支持。操作系统往往会提供一个用户空间的线程库,该用户程序库提供了线程的创建、调度和撤销等功能,而内核仍然对进程进行管理。如果一个进程中的某一个线程调用了一个阻塞的系统调用函数,那么该进程包括该进程中的线程也同时被阻塞。这种用户级线程的主要缺点是在一个进程中的多个线程的调度中无法...
分类:
编程语言 时间:
2014-10-13 01:50:49
阅读次数:
205
实例11-1为在Ubuntu12.04上的运行结果与书中描述的不一致呢?从pid来看这两个线程属于同一个进程,且线程ID也是指针形式的,Google后得知,书上讲的是以前的LinuxThreads实现,现在linux使用NPTL线程。参考:Linux线程模型的比较:LinuxThreads和NPTL习题11.4在回答该问题之前..
分类:
编程语言 时间:
2014-10-04 04:40:16
阅读次数:
381
结论:1.linux2.2+ 支持smp(对称多处理机(SymmetricalMulti-Processing)模式。android sdk 8 采用的是2.6.29-00261-g0097074-dirty.2.当核内既支持进程也支持线程时,就可以实现线程-进程的"多对多"模型,即一个进程的某个线...
分类:
编程语言 时间:
2014-09-30 03:27:02
阅读次数:
251
版权声明:原文地址及作者不详,如有侵权,请联系; 本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任...
分类:
编程语言 时间:
2014-09-17 15:41:43
阅读次数:
371
Linux下c开发 之 线程通信(转)1.Linux“线程”进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进...
分类:
编程语言 时间:
2014-09-17 11:56:02
阅读次数:
272
1 线程创建
#include
#include
#include
void thread(void)
{
int i;
for(i=0;i<3;i++)
{
printf("this is a pthread\n");
}
}
int main(void)
{
pthread_t id;
int i,ret;
ret = pthread_create(&id,N...
分类:
编程语言 时间:
2014-09-10 17:49:00
阅读次数:
276
一直以来难以调试多线程,在网上搜索得知一种多线程调试的方法一直觉得Linux下的多线程调试是很麻烦的,因为一般大一点的程序线程会很多,通过gdb的info thread命令看全都是系统调用,看不到详细的方法,至少我看到是这样的...如果用thread id跟进每个thread去bt,是件相当痛苦的事...
分类:
编程语言 时间:
2014-09-09 15:49:28
阅读次数:
222