【av68676164(p21-p22)】线程
2024-10-09 11:12:03
4.3.1 线程概念
线程的概念(Thread)
- 线程是可由CPU直接运行的实体
- 一个进程可以创建多个线程
- 多个线程可共享CPU可以实现并发运行
CreateThread()
功能:把一个函数创建为一个线程
CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
// 线程函数的参数
_In_opt_ __drv_aliasesMem LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
单线程程序和多线程程序
单线程程序
整个进程只有一个进程。Windows程序缺省只有一个线程(主线程,main线程)
多线程程序
整个线程至少有2个线程,主线程和一个用户线程
4.3.2 线程典型应用场景
线程技术典型使用场景
程序的多个功能需要并发执行
每个功能都创建为一个线程,从而实现多个功能的兵法
提高窗口程序的交互性
后台计算的特点:很耗时的函数
关于创建线程的补充说明
- Win32库创建线程:CreateThread()
- MFC创建线程:AfxBeginThread()
- 创建远程线程:CreateRemoteThread()
- Linux创建线程:pthread_create()
Linux线程
POSIX标准p1003.1c定义Linux线程库(Pthreads)
应用特点
#include <pthreads.h>
pthread_function()
线程的创建pthread_create
__API_AVAILABLE(macos(10.4), ios(2.0))
#if !_PTHREAD_SWIFT_IMPORTER_NULLABILITY_COMPAT
int pthread_create(pthread_t _Nullable * _Nonnull __restrict,
const pthread_attr_t * _Nullable __restrict,
void * _Nullable (* _Nonnull)(void * _Nullable),
void * _Nullable __restrict);
参数:
参数 意义 thread 返回的线程句柄 attr 指定的线程属性 ThreadFunction 线程函数的入口地址 arg 线程函数的参数
使用线程的麻烦
- 程序难以条数
- 线程安全问题
- 并发过程难以控制
最新文章
- 同一AppDomain内的SharpGL的FrameBuffer会相互影响?
- unreal 自定义 Slate Style Sets
- Java 2D API - 1. 基本概念
- Oracle索引(B*tree和Bitmap)学习
- CKEDITOR使用与配置
- php中将url中的参数含有%20进行转换或解码
- iOS学习之C语言内存管理
- cocos2d-x CCArray
- JavaScript Invalid Date Verify
- 瑞柏匡丞:用全局观开发App
- Python 修炼1
- celery rabbit mq 详解
- 配置合适的Visual Studio 2017 开发环境(其它版本的也适用)
- 进程&;线程&;协程
- c#程序退出
- [整理]JS中的状态机
- hive的查询注意事项以及优化总结 .
- java 快速求素数
- AngularJS 使用序号的表格
- php日期时间和时间戳转化