共 1,395 篇文章
共 6,621 篇文章及评论
博客分类
Blog Roll
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
Archives
帖子来自 z19881126 
程序运行时候. 中断. 异步. 还有多线程的一点小知识
作者: z19881126 (1 篇文章) 日期: 九月 15, 2011 在 2:47 下午
评论 (0)
之前在用nesc编写协议栈代码的时候,遇到一些程序运行过程中的问题。各种问题。 比如在处理某包的时候,在程序任何运行时,都可能被硬件中断打断,可能被某个Timer,fired打断。而程序访问了很多的全局变量。。由于我对tinyos操作系统的一些同步异步机制不太了解,开始协议栈程序运行时,有时候出现一些莫名其妙的错误,当然后来仔细看了tinyOS操作系统的一些同步异步机制后,解决了一些问题。。 反正就是,应用程序在运行过程中,不像只是学和思考C语言编程那么简单。要考虑一些运行时的问题。。。。然后联想起以前学的UNIX高级编程和UNIX网络编程这两门课时候,学过一些线程同步那些章节,然后回顾了一下以前学的一些知识,简单小结一下。 为什么应用程序使用多线程;多线程的好处等,这里就不说了,没开发过这方面的大项目,不太清楚。只是知道书上说了那些描述性的好处。 简单总结一下。 多个线程会共享一些进程的静态数据段的资源,比如在主线程中定义的全局变量。肯定其他线程也能访问的。 在Unix, Linux平台下,我们利用互斥锁来处理全局变量的互斥问题。 考查互斥锁变量,利用互斥锁变量专门关联一个变量。 数据类型: pthread_mutex_t 初始化: pthread_mutex_t macPIB_mutex = PTHREAD_MUTEX_INITIALIZER; 操作函数:: int pthread_mutex_lock(pthread_mutex_t *mutex) //加锁函数,如果mutex被锁住了,此函数会阻塞程序,直到那个锁被释放。 int ...
