- 浏览: 863869 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (280)
- java相关 (29)
- linux系统 (55)
- ipsec (0)
- ssl (3)
- 信息安全 (13)
- web相关 (35)
- windows (9)
- c,c++ (14)
- log4j (3)
- hibernate (8)
- sqlite (1)
- 程序人生 (2)
- js (2)
- 生活点滴 (3)
- 网络相关 (14)
- 问题积累 (15)
- 数据库相关 (27)
- 软件测试 (2)
- PKI相关 (2)
- 程序设计 (7)
- 犄角旮旯 (0)
- 杂七杂八 (0)
- 硬件相关 (14)
- 防火墙 (2)
- 电子商务 (2)
- 多媒体相关 (1)
- 内存管理 (4)
- 面向对象 (1)
- csp (1)
- 驱动开发 (3)
- 移动开发 (2)
- openssl多线程实例 (1)
最新评论
-
xiaoyao3857:
博主很有探索精神嘛,学习了
Linux主机名Hostname详解 -
hiskyrisa:
言简意赅,好文章。
Flex是什么 -
layznet:
犯了类似错误。使用的是derby数据库。driverClass ...
java.sql.SQLException: No suitable driver -
idision:
你好,文章有一句createSubjectKeyId(keyT ...
bouncycastle 产生证书 -
zheng12tian:
代码有全的不?只贴一部分,,,,
在LOG4J中把日志写入远程数据库
通过创建两个线程来实现对一个数的递加。
或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。
- #include <pthread.h>
- #include <stdio.h>
- #include <sys/time.h>
- #include <string.h>
- #include <unistd.h>
- #define MAX 10
- pthread_t thread[2];
- pthread_mutex_t mut;
- int number=0, i;
- void *thread1(void *)
- {
- printf ("thread1 : I'm thread 1\n");
- for (i = 0; i < MAX; i++)
- {
- printf("thread1 : number = %d\n",number);
- pthread_mutex_lock(&mut);
- number++;
- pthread_mutex_unlock(&mut);
- sleep(2);
- }
- printf("thread1 :the main function is waiting for me?\n");
- pthread_exit(NULL);
- }
- void *thread2(void *)
- {
- printf("thread2 : I'm thread 2\n");
- for (i = 0; i < MAX; i++)
- {
- printf("thread2 : number = %d\n",number);
- pthread_mutex_lock(&mut);
- number++;
- pthread_mutex_unlock(&mut);
- sleep(3);
- }
- printf("thread2 :the main function is waiting for me? \n");
- pthread_exit(NULL);
- }
- void thread_create(void)
- {
- int temp;
- memset(&thread, 0, sizeof(thread)); //comment1
- /*Create thread*/
- if((temp = pthread_create(&thread[0], NULL, thread1, NULL)) != 0) //comment2
- printf("Thread 1 fail to create!\n");
- else
- printf("Thread 1 created!\n");
- if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0) //comment3
- printf("Thread 2 fail to create!");
- else
- printf("Thread 2 created!\n");
- }
- void thread_wait(void)
- {
- /*Wait thread end*/
- if(thread[0] !=0) { //comment4
- pthread_join(thread[0],NULL);
- printf("Thread 1 completed\n");
- }
- if(thread[1] !=0) { //comment5
- pthread_join(thread[1],NULL);
- printf("Thread 2 completed.\n");
- }
- }
- int main()
- {
- /*init mutex*/
- pthread_mutex_init(&mut,NULL);
- printf("Main function,creating thread...\n");
- thread_create();
- printf("Main function,waiting for thread end....\n");
- thread_wait();
- return 0;
- }
我是主函数哦,我正在创建线程,呵呵
线程1被创建
线程2被创建
我是主函数哦,我正在等待线程完成任务阿,呵呵
thread1 : I'm thread 1
thread1 : number = 0
thread2 : I'm thread 2
thread2 : number = 1
thread1 : number = 2
thread2 : number = 3
thread1 : number = 4
thread2 : number = 5
thread1 : number = 6
thread1 : number = 7
thread2 : number = 8
thread1 : number = 9
thread2 : number = 10
thread1 :主函数在等我完成任务吗?
线程1已经结束
thread2 :主函数在等我完成任务吗?
线程2已经结束
发表评论
-
linux下进程的最大线程数、进程最大数、进程打开的文件数
2011-06-22 17:35 1944linux 系统中单个进程的 ... -
Linux中dos2unix的批量转换命令
2011-01-05 10:31 6973在Linux中将DOS 格式转换为Unix格式的文件可以使用d ... -
linux双网关双线路网络设置
2010-08-03 19:10 2008由于电信和网通之间互联互通 的问题,很多 ... -
syslog-ng学习心得之二
2010-07-06 08:58 2436在[url]http://coolerfeng.blog.51 ... -
syslog-ng学习心得之一
2010-07-06 08:58 2741转载一篇syslog-ng的文章的,本来是想打算自己写一篇 ... -
Linux用户进程是如何释放内存
2009-12-25 17:16 2056Linux进程使用内存的基本流程: 见图1 从 ... -
Linux内存使用详解
2009-12-25 16:56 2374一提到内存管理,我们 ... -
linux下查看内存使用情况
2009-12-25 14:56 1990在Linux下查看内存我们 ... -
Linux编程C++内存管理之内存分配详解
2009-12-21 21:33 1754程序员们经常编写内存 ... -
内核模块调试方法
2009-11-17 11:23 2579对 于任何一位内核代 ... -
Linux操作系统下以太网卡的安装及配置
2009-11-11 17:18 1676Linux操作系统以其 独有的开放性、稳定性、高 ... -
跟我一起写 Makefile(3)
2009-11-03 14:38 633“-s” “--silent” “--quiet” 在命 ... -
跟我一起写 Makefile(2)
2009-11-03 14:35 954书写命令 ———— 每 ... -
跟我一起写 Makefile(1)
2009-11-03 14:32 979陈皓 (CSDN) 概述 — ... -
CC与GCC的区别概括介绍
2009-11-03 14:29 1449从名字上看,老的unix系统 的CC程序叫做C Comp ... -
linux内核模块管理命令
2009-10-30 10:54 17081. lsmod 列出已经加载的内核模块 lsmo ... -
分区修复软件Testdisk 安装使用
2009-08-26 14:23 4912linux下超帅的分区表修复软件.以前用过n多的window ... -
Linux下的分区修复软件Testdisk
2009-08-26 10:40 1853好了,这个软件叫testdisk.很帅的。。 如果你是使 ... -
Linux分区数据恢复
2009-08-26 10:18 1443公司的一台redhat机器启动不了了,是由于多次非正常关机造成 ... -
重装grub的方法及GRUB相关配置
2009-08-26 09:34 1614**当我们每次要重装WIN ...
相关推荐
Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程...
在Linux环境下进行C语言多线程编程,可以利用POSIX线程库,也称为pthread库。这个库提供了创建、同步和管理线程的一系列接口,使得开发者能够在单个进程中同时执行多个任务,从而提高程序的并行性。下面将详细探讨多...
linux下C语言多线程编程实例.pdf
标题中的“C语言多线程编程实例”直接指出了文档的主题内容,即围绕C语言编程中多线程编程技术的实例讲解。多线程是编程中的一项关键技术,能够允许程序同时执行多个线程,提高程序的运行效率和响应速度。 描述部分...
本实例集主要针对Linux环境下的C语言多线程编程,旨在帮助开发者深入理解和实践多线程的创建、同步、通信以及管理等关键概念。 1. **线程创建**: 在Linux中,多线程通常通过POSIX线程库(pthread)实现。`pthread...
linux下C语言多线程编程实例[归纳].pdf
通过这个简单的实例,我们可以了解到Linux下C语言多线程编程的基本框架,包括线程的创建、同步和结束。然而,在实际应用中,还需要考虑更复杂的情况,如线程优先级、线程局部存储、信号量、条件变量等高级同步机制。...
在Linux环境下,C语言多线程编程是一种常见的并发处理方式,它允许程序同时执行多个任务,提高系统资源利用率和程序执行效率。本文将通过一个简单的实例来介绍如何在Linux下使用C语言进行多线程编程。 首先,我们要...
总的来说,这个C语言多线程编程实例展示了如何在Linux环境下创建、同步和管理线程,以及如何利用互斥锁解决并发访问共享资源时的冲突问题。这个基本的实例可以作为进一步学习多线程编程的基础,通过修改和扩展,可以...
本文介绍了在Linux环境下进行多进程和多线程编程的基础知识。多进程编程主要涉及fork()函数的使用,而多线程编程则基于pthread线程库。通过理解这些基础知识,开发人员能够更好地利用现代操作系统提供的并发能力,...
【Linux下的多线程编程实例解析】 在计算机操作系统中,多线程编程是实现并行处理和提高系统效率的一种重要技术。Linux系统同样支持多线程编程,这使得开发者能够利用这一特性创建高效的、响应迅速的应用程序。多...
linux下的C\C++多进程多线程编程实例详解 1、多进程编程 #include #include #include <unistd> int main() { pid_t child_pid; /* 创建一个子进程 */ child_pid = fork(); if(child_pid == 0) { printf...
本文档主要介绍了Linux下的C语言多线程编程,包括多线程的概念、优点、实现方法和实例代码。多线程技术可以提高应用程序的响应速度、使多CPU系统更加有效、改善程序结构等。 多线程的概念 多线程是一种多任务操作...
在C语言多线程编程中,线程同步是控制多个线程在执行时,按照一定的顺序来访问某些共享资源,避免多个线程同时对同一个资源进行操作,造成资源的不一致或竞争条件。在给定文件中,我们看到了多线程编程的实例,包含...