Linux多线程实例练习 - pthread_cancel1、代码 xx_pthread_cancel.c#include <pthread.h>
#include <stdio.h>
#include <unistd.h>#define debug_Msg(fmt, arg...) do{ printf("%s %d : ", __FILE__, __LINE__); printf(fmt, ##arg); }while(0)#define ENABLE_X
char * pe = "enable return";
void * state_Enable(void *arg)
{int i = 0;int iExit = 0;while(i < 10 && iExit == 0){debug_Msg("state Enable...
Shell中并没有真正意义的多线程,要实现多线程可以启动多个后端进程,最大程度利用cpu性能。直接看代码示例吧。(1) 顺序执行的代码 1 #!/bin/bash2date 3for i in `seq15`4do 5{6echo"sleep 5" 7sleep5 8}9done10date输出:Sat Nov 1909:21:51 CST 2016sleep5sleep5sleep5sleep5sleep5
Sat Nov 1909:22:16 CST 2016(2) 并行代码使用‘&‘+wait 实现“多进程”实现 1 #!/bin/bash2date 3for i in `seq15`4do 5{6echo"sleep 5" 7slee...
在Linux中,多线程的本质仍是进程,它与进程的区别:进程:独立地址空间,拥有PCB线程:也有PCB,但没有独立的地址空间(共享)线程的特点:1,线程是轻量级进程,有PCB,创建线程使用的底层函数和进程一样,都是clone2,从内核看进程和线程是一样的,都有各自不同的PCB3,进程可以蜕变成线程4,在LINUX中,线程是最小的执行单位,进程是最小的分配资源单位查看指定线程的LWP号命令:ps -Lf pid
线程优点:提高程序并发性开销小数据...
#!/bin/bash
#———————————————————————————–
# 此例子说明了一种用wait、read命令模拟多线程的一种技巧
# 此技巧往往用于多主机检查,比如ssh登录、ping等等这种单进程比较慢而不耗费cpu的情况
# 还说明了多线程的控制
#———————————————————————————–function a_sub { # 此处定义一个函数,作为一个线程(子进程)
sleep 3 # 线程的作用是sleep 3s
}tmp_fifofile="...
接上篇博文,本文是服务器端的实现,主要实现的功能,就是现实客户端的连接,转发客户端发送的消息,以及客户端掉线提示等功能,同时可以在这这上面扩展和TCP以及线程相关的功能木块。tcpreceive.h 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#ifndef TCPRECEIVE_H#define TCPRECEIVE_H#define BUFFSIZE 2048#define listen_max 5intcond;intrscond;typedefstructTCP_rcv_arg{char*local_addr;inttcp_port;}TCP_rcv_arg_t...
1 引言
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的
Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支
持,包括Windows也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回...
1. Linux多线程概述1.1. 概述进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。线程通常叫做轻量级进程。线程是在共享内存空间中并发执行的多道执行路径,是一个更加接近于执行体的概念,拥有独立的执行序列,是进程的基本调度单元,每个...
看完了APUE第三版的Chapter11 Threads,跟着书上的demo走了一遍,并且参考了这个blog(http://www.cnblogs.com/chuyuhuashi/p/4447817.html)的非常好的example。下面的内容就是看书过程中记录的,可以作为一个参考,但决不能代替看APUE原著。本来想在自己的mac上跑(毕竟也叫unix系统),后来发现mac上有些pthread的库支持的不全(比如,没有barrier),就改到了centos server上跑。(一)Thread Identification 1. 线程的id只...
线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务(不止一个不同的任务)就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原...
原文地址:http://www.cnblogs.com/BiffoLee/archive/2011/11/18/2254540.html1.Linux“线程”
进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。
大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“...
linux下的多线程通过pthread实现,下面给个简单的例子。#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>void* thr_fn()
{printf("this is a thread, tid = %d\n", pthread_self());printf("thread return\n");return (void*)0;
}int main()
{printf("this is the main thread, pid = %d\n", getpid());pthread_t tid;int ret;ret = pthread_create(&tid, NULL, thr_fn, NULL);if (ret != 0){printf("create thread e...
1. Linux多线程概述1.1. 概述进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。线程通常叫做轻量级进程。线程是在共享内存空间中并发执行的多道执行路径,是一个更加接近于执行体的概念,拥有独立的执行序列,是进程的基本调度单元,每个...
前言:有这样一道面试题(来自http://blog.csdn.net/morewindows/article/details/7392749):
“编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。”我们就从这样一题出发,认识多线程,了解其同步机制,最后正确解答这一类题目。本文框架如下:进程与线程多线程的优越性线程基本函数多线程同步题目代码 一.进程与...
先看执行的结果: 1主函数正在创建线程,...2线程1被创建3 Thread1 : I‘m thread 1th 4线程2被创建5 Thread2 : I‘m thread 2nd 6 thread2 : number = 0 7线程3被创建8主函数正在等待线程结束...9 thread1 : number = 010 Thread3 : I‘m thread 3nd11 thread3 : number = 212 thread3 : number = 313 thread2 : number = 414 thread1 : number = 515 thread3 : number = 616 thread2 : number = 717 thread3 : number = 818 thre...
1. pstreepstree以树结构显示进程root@119.10.6.*:~# pstree
init─┬─NetworkManager├─abrt-dump-oops├─abrtd├─atd├─auditd───{auditd}├─automount───4*[{automount}]├─certmonger├─crond├─dbus-daemon├─hald─┬─hald-runner─┬─hald-addon-acpi│ │ └─hald-addon-inpu│ └─{hald}├─httpd─┬─httpd│ └─4*[httpd───26*[{httpd}]]├─irqbalance├─mcelog├─6*[mingetty]├─...