/* tcp_server.c */
#include
#include
#include
#include
#define portnum 3333
int main()
{
int sockfd,newfd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
char buffer[128];
...
分类:
其他好文 时间:
2015-05-09 10:19:15
阅读次数:
122
多个线程按照规定的顺序来执行,即线程同步
条件变量实现线程同步
1.初始化: pthread_cond_t cond_ready = PTHREAD_COND_INITIALIZER;
2.等待条件成熟:pthread_cond_wait(&cond_ready,&mut);
3.设置成熟条件:pthread_cond_signal(&cond_ready);
综合...
分类:
编程语言 时间:
2015-05-07 22:10:19
阅读次数:
139
OpenMp是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性的编译处理方案(Compiler Directive)。OpenMP支持的编程语言包括C语言、C++和Fortran;而支持OpenMp的编译...
分类:
其他好文 时间:
2015-05-07 21:50:22
阅读次数:
214
1.线程概念
线程就是“轻量级”的进程
线程与创建它的进程共享代码段和数据段
线程拥有自己独立的栈
2.函数学习
创建线程
函数名:pthread_create
函数原型:int pthread_create(pthread_t *thread,const pthread_attr_t *attr,void *(*start_routine)(void *),void *arg)
...
分类:
编程语言 时间:
2015-05-07 18:50:51
阅读次数:
128
看到一篇好文章,特地转载下来,很详细很全面,收藏之。原文地址:http://blog.21ic.com/user1/1425/archives/2009/64057.htmlQT多线程程序设计QT通过三种形式提供了对线程的支持。它们分别是,一、平台无关的线程类,二、线程安全的事件投递,三、跨线程的信...
分类:
编程语言 时间:
2015-04-08 14:48:40
阅读次数:
252
之前看侯捷翻译的《win32多线程程序设计》中关于线程同步中的临界区问题,其中举得例子是对链表的操作。死锁的问题是对一个Swaplist函数的问题,现列举代码如下:void SwapLists(List *list, List *list2){ List *tmp_list; EnterCrit.....
分类:
编程语言 时间:
2014-11-14 00:06:57
阅读次数:
256
在上一篇文章中介绍了并行计算的基础概念,也顺便介绍了OpenMP。 OpenMp提供了对于并行描述的高层抽象,降低了并行编程的难度和复杂度,这样程序员可以把更多的精力投入到并行算法本身,而非其具体实现细节。对基于数据分集的多线程程序设计,OpenMP是一个很好的选择。同时,使用OpenMP也提...
分类:
其他好文 时间:
2014-10-29 16:32:17
阅读次数:
245
不理解多线程程序设计, 就无法真正理解 JavaSE 和 JDK 源码; 因为线程特性已经与Java 语言紧密地融合在一起。 如何学习多线程程序设计呢? 那看上去似乎总是显得有些神秘。首先, 必须透彻理解并发程序设计的基本原理和机制, 否则, 只是学习使用那些关键字、类的招式,恐怕只能...
分类:
编程语言 时间:
2014-10-20 20:56:17
阅读次数:
355
多线程程序设计的困难
难以重现失败,bug难以追踪
并发错误难以追踪和消除
独立任务的拆分并不总是那么明朗
线程同步、通信引入的复杂
多线程引发的竞争、死锁、可见性问题(难以调试、追踪)
测试困难,简单的测试并不能覆盖生产环境的问题
设计不当,并不能充分提升性能(不控制线程数量,造成无谓上下文切换和Cache失效)
see Amdahl's law,阿姆达尔定律,...
分类:
编程语言 时间:
2014-09-23 19:25:45
阅读次数:
300