重明鸟软件知识平台
@C/C++多线程编程(1)
我们来说下多线程,线程也叫轻量级的进程。一个程序可以创建多个线程(一般CPU有多少个核就创建多少个线程。)。多个线程是并发执行。有多少个CPU(核心)就可同时执行多少个线程。超出部份要等其它线程完成后才可以执行。

一个程序可以创建多个线程。当这个程序结束时,所创建的线程也会全部结束。线程间是可以共享内存的。

我们这里用GCC来写一个多线程的程序。GCC的好处是可以跨平台运行。
#include <iostream>
#include <sys/types.h>
#include <pthread.h> //多线程相关操作头文件,可移植众多平台

using namespace std;

#define NUM_THREADS 5 //线程数

void* say_hello( void* args )
{
    cout << "Hello,I am threads "<<pthread_self() << endl;

}

int main()
{
    //线程id
    pthread_t tids[NUM_THREADS];

    for( int i = 0; i < NUM_THREADS; ++i )
    {
        //参数:创建的线程id,线程参数,线程运行函数的起始地址,运行函数的参数
        int ret = pthread_create( &tids[i], NULL, say_hello, NULL );
        if( ret != 0 ) //创建线程成功返回0
        {
            cout << "create thread error code=" << ret << endl;
        }
    }

    //等待各个线程退出后,进程才结束,否则进程强制结束,线程处于未终止的状态
    pthread_exit( NULL );
}

运行结果

我们可以看到输出结果有些乱,这是因为并发执行的结果
@站内查找
@栏目文章
【基础教程】TKinter(5):Label控件
【基础教程】TKinter(4):Messagebox控件
【基础教程】TKinter(3):Button控件
【基础教程】TKinter(2):控件及其属性
【基础教程】TKinter(1):第一个tkinter程序
【基础教程】Python守护进程创建
【基础教程】PyGame(13):三维环境设置
【基础教程】C/C++指针函数和回调函数
【基础教程】C/C++多进程编程(3)
【基础教程】C/C++多进程编程(2)
【基础教程】C/C++多进程编程(1)
【基础教程】C/C++多线程编程(2)
【基础教程】C/C++多线程编程(1)
【基础教程】C/C++动态库编程
【基础教程】C/C++静态库编程
【基础教程】photoshop图片混合公式
【基础教程】PyGame(12):旋转和缩放
【基础教程】PyGame(11):Surface操作
【基础教程】网络编程:Epoll(2)
【基础教程】网络编程:Epoll(1)
【基础教程】网络编程:IOCP(3)
【基础教程】网络编程:IOCP(2)
【基础教程】网络编程:IOCP(1)
【基础教程】网络编程:UDP
【基础教程】网络编程:TCP
【基础教程】Ubuntu安装Hadoop(4)
【基础教程】Ubuntu安装Hadoop(3)
【基础教程】Ubuntu安装Hadoop(2)
【基础教程】Ubuntu安装Hadoop(1)
【基础教程】Hadoop技术原理
【基础教程】Hadoop基本命令
【基础教程】Hadoop是什么东西
【基础教程】排序算法介绍
【基础教程】PyGame(10):声音控制
【基础教程】PyGame(9):鼠标事件(2)
【基础教程】PyGame(8):鼠标事件(1)
【基础教程】PyGame(7):键盘事件(2)
【基础教程】PyGame(6):键盘事件(1)
【基础教程】PyGame(5):显示图片
【基础教程】PyGame(4):显示文字
【基础教程】PyGame(3):图元绘制
【基础教程】PyGame(2):游戏框架
【基础教程】PyGame(1):开发环境搭建
【基础教程】Python(10):类定义
【基础教程】Python(9):自定义模块
【基础教程】Python(8):输入输出控制
【基础教程】Python(7):函数定义
【基础教程】Python(6):中断语句
【基础教程】Python(5):判断语句
【基础教程】Python(4):循环语句
【基础教程】Python(3):变量与运算符
【基础教程】Python(2):Hello
【基础教程】Python(1):介绍与安装
Copyright @ 2011-2018 by szc  桂ICP备11003301号-1  桂公网安备45040302000027号  Email:szcsoft@qq.com