`
sipgreen
  • 浏览: 26629 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

为什么linux下多线程编程,每次执行结果都不一样

 
阅读更多

#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>


#include <iostream>
using namespace std;


void* myThread(void* arg);


int main() {

	int ret=0;
	pthread_t mythread;

	ret=pthread_create(&mythread,NULL,myThread,NULL);

	if(ret !=0)
	{
		printf("Can't create pthread (%s) \n", strerror(errno));
	}

	int status=0;

	pthread_join(ret,(void ** ) status);

	cout<<status<<endl;
	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
	return 0;
}


void* myThread(void* arg)
{
	printf("Thread ran\n");

	printf("fjsdlkjfkdslfkjlsklds");

	//pthread_exit(arg);
}
 

 

 

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 0

!!!Hello World!!!

Thread ran

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 

0

!!!Hello World!!!

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 

0

!!!Hello World!!!

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 

0

!!!Hello World!!!

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 

Thread ran

0

!!!Hello World!!!

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 

0Thread ran

fjsdlkjfkdslfkjlsklds

!!!Hello World!!!

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ ../Debug/PTthreadeg 

0

!!!Hello World!!!

Thread ran

Thread ran

andrewu@andrewu-VirtualBox:~/workspace/cpp/PTthreadeg/src$ 


分享到:
评论

相关推荐

    Linux操作系统下的多线程编程详细解析.doc

    在Linux操作系统下,多线程编程是一种常见的编程技术,它允许多个执行流在同一进程中并发运行,从而提高程序的响应速度、充分利用多核处理器资源以及改善程序结构。Linux下的多线程实现基于POSIX线程接口(pthread)...

    Linux的多线程机制探讨与实践.pdf

    本文主要探讨了Linux中的多线程实现,以及如何进行多线程编程。 首先,线程和进程是操作系统中处理任务的基本单位。进程是计算机资源分配的基本单元,拥有独立的内存空间和资源,而线程则是执行运算的最小单位,是...

    多线程函数指针数组.rar

    标题中的“多线程函数指针数组.rar”表明这是一个关于多线程编程的资源,其中可能包含使用函数指针数组来实现线程间通信或任务调度的示例代码。描述中提到“很复杂,很复杂,值得研究,但不适合做游戏”,这暗示了多...

    Linux下的多进程编程初步.doc

    【Linux下的多进程编程初步】 Linux操作系统以其强大的多任务处理能力而闻名,其中多进程编程是其核心特性之一。在Linux环境下,通过多进程...在Linux运维和服务器开发中,多进程和多线程编程技巧是必不可少的技能。

    多线程编程之:Linux线程编程

    Linux 多线程编程之线程编程 Linux 多线程编程是指在 Linux 操作系统中使用多线程技术来实现并发编程。线程是一种轻量级的进程,它可以共享同一个进程的资源和地址空间。在 Linux 中,pthread 线程库是一套通用的...

    linux系统编程之线程.zip

    线程ID:pthread_t类型,本质:在Linux下为无符号整数(%lu),其他系统中可能是结构体实现 线程ID是进程内部,识别标志。(两个进程间,线程ID允许相同) 注意:不应使用全局变量 pthread_t tid,在子线程中通过...

    linux进程编程介绍

    阅读这本书,你将能掌握如何在Linux下创建、管理和控制进程,如何实现进程间通信,以及如何使用线程来提高程序的并发性能。同时,`E书说明.txt`可能包含了关于如何阅读和利用这本书的额外信息。 总而言之,Linux...

    Linux系统编程.PDF

    - **定义**:用于多线程环境下的同步工具。 - **作用**:让线程等待直到满足特定条件。 - **1.4.14 进程间通信** - **定义**:不同进程之间交换数据的方法。 - **技术**:管道、消息队列、共享内存等。 - **...

    linux c编程实战源码

    此外,要注意:有些程序编译时要带上命令行参数,比如编译多线程程序时,需带上-lpthread选项。对于此类程序编译时,书中都有对应的编译命令。对于一般的程序,只需使用如下命令:gcc -o test test.c。 2.由于格式...

    LINUX编程白皮书001-03

    多线程编程在现代软件设计中十分常见。在Linux中,`pthread_create()`用于创建新线程,`pthread_join()`等待线程结束,`pthread_mutex_t`和`pthread_rwlock_t`分别用于互斥锁和读写锁,确保并发访问共享资源时的同步...

    linux网络编程和通信自己学习写的代码

    在实际编程中,我们还需要考虑错误处理、并发处理、多线程和异步I/O等复杂情况。例如,`select()`、`poll()`和`epoll`等机制可用于等待多个套接字事件,提高效率。 通过分析和实践这些代码,你可以深入理解Linux...

    linux学习笔记(包含Linux系统和shell编程).zip

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix...

    Linux操作系统下学习, 包括Linux基本开发方法, 系统编程, 网络编程等内容.zip

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix...

    Linux网络编程.pdf

    Linux网络编程是开发高效、可靠的跨平台应用的关键技术之一,特别是在服务器端开发中。这篇教程主要涵盖Linux系统下的...通过持续学习和实践,可以深入到更复杂的网络编程领域,如多线程、异步I/O、网络安全等方面。

    学习linux相关的知识,包括基本的linux指令,shell编程以及git相关知识.zip

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix...

    Linux下网络串口透传实现代码

    在Linux环境下,网络串口透传是一项关键技术,它允许数据通过网络在远程设备间像直接通过串行端口通信一样传输。这个实现是基于C语言编程的,旨在提供一种高效、可靠的串口到网络,以及网络到串口的数据传输方式。...

    利用socket编程实现的网络版shell命令解释器

    同步模型中,服务器每次只处理一个客户端请求,而异步模型则可以同时处理多个客户端,这通常需要用到多线程或多进程,或者更高级的非阻塞I/O模型如epoll。 总的来说,通过socket编程实现网络版shell命令解释器,...

    Linux Socket编程

    在实际编程中,还需要考虑错误处理、多线程或异步I/O等问题,以确保通信的稳定性和效率。学习Linux Socket编程能够帮助开发者构建网络服务、实现客户端-服务器通信,是网络编程领域的重要技能。

    让Linux像Windows一样方便

    版本为实例,详细介绍了如何使Linux系统更加易用和友好,包括但不限于安装过程、各种网络配置、办公软件安装、文件系统兼容性、外部设备支持、多媒体播放器、网络工具、聊天软件、阅读器及编程开发环境等。...

Global site tag (gtag.js) - Google Analytics