同步多线程
无切换
提升多个执行单元 利用率
05
其他多线程
The other Multi-Threading
其他多线程
:它与同时多线程不同,动态多线程不完全依赖于软件 编译开发,它主要通过硬件动态提取可并行执行的线程。
1
:在SMT(同时多线程)下基础上加DMT(动 态多线程)的特性称为动态同时多线程DSMT(Dynamic SimultaneousMultithreading)。
发射和执行,只在某些特定的时刻进行线程切换,如:出现数据 相关和Cache失效等。
执行过程
EXECUING PROCEDURE
周期 i+1:接收 线程 A 的指令 j+1 01 STEP 03 STEP
周期 i+3:线程 调度器介入,切 换到线程 B
周期 i+5:接收 线程 B 的指令 k+1
02 STEP
概念
CONCEPT
多线程(multithreading ),是指从软件或者硬件上实现多个线程并发
执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执 行多于一个线程,进而提升整体处理性能。 具有这种能力的系统包括: 对称多处理机 多核心处理器 芯片级多处理或同时多线程处理器。
• • •
//创建生产者和消费者线程 if( pthread_create( &thrd_prod , NULL, producer , NULL ) != 0 ) oops( "thread create failed." ); sleep(1); if( pthread_create( &thrd_cons , NULL, consumer , NULL ) != 0 ) oops( "thread create failed." ); //等待线程结束 if( pthread_join( thrd_prod , NULL ) != 0 ) oops( " wait thread failed."); if( pthread_join( thrd_cons , NULL ) != 0 ) oops( " wait thread failed."); pthread_mutex_destroy( &mutex ); return 0; } //关闭互斥量