社区
C++ 语言
帖子详情
主线程和子线程的时间片问题
shouldface
2012-06-27 11:05:04
主线程创建一个子线程,默认优先级,即,主线程和子线程优先级一样,创建的子线程为立即执行的,子线程是不是也要等到主线程的第一个时间片用完挂起时才能被执行吗?
如果主线程时间片用完但程序未完 ,就执行子线程,当子线程执行完后返回到主线程的哪个点?
...全文
298
10
打赏
收藏
主线程和子线程的时间片问题
主线程创建一个子线程,默认优先级,即,主线程和子线程优先级一样,创建的子线程为立即执行的,子线程是不是也要等到主线程的第一个时间片用完挂起时才能被执行吗? 如果主线程时间片用完但程序未完 ,就执行子线程,当子线程执行完后返回到主线程的哪个点?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shouldface
2012-06-27
打赏
举报
回复
我在vs2008里试了,确实没问题,谢谢大家
shouldface
2012-06-27
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:
hThread1 = CreateThread(NULL,0,fun1Proc,NULL,0,NULL)……
[/Quote]
那现在工作都用什么编译器?
善良超锅锅
2012-06-27
打赏
举报
回复
我在vs2010中把#include <iostream.h>改成了#include <iostream>
并加了一行using namespace std;
没有问题,可能问题真如ls说的。
学C++用dev c++或者 vs2010比较好
善良超锅锅
2012-06-27
打赏
举报
回复
我这边没有看到两个main thread is runing 只看到一个
[Quote=引用 4 楼 的回复:]
#include <windows.h>
#include <iostream.h>
DWORD WINAPI fun1Proc(
LPVOID lpParameter
);
void main()
{
HANDLE hThread1;
hThread1 = CreateThread(NULL,0,fun1Proc,NULL,0,NULL);
CloseHan……
[/Quote]
jackyjkchen
2012-06-27
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
#include <windows.h>
#include <iostream.h>
DWORD WINAPI fun1Proc(
LPVOID lpParameter
);
void main()
{
HANDLE hThread1;
hThread1 = CreateThread(NULL,0,fun1Proc,NULL,0,NULL);
CloseHan……
[/Quote]
iostream.h这种非标准头文件,一看就是VC6,VC6的iostream线程不安全,输出任何东西都不奇怪
珍惜生命,远离VC6
shouldface
2012-06-27
打赏
举报
回复
Main thread is runing
Main thread is runing
Thread1 is runing
A
F
B
G
C
H
D
I
E
J
Press any Key to continue
shouldface
2012-06-27
打赏
举报
回复
#include <windows.h>
#include <iostream.h>
DWORD WINAPI fun1Proc(
LPVOID lpParameter
);
void main()
{
HANDLE hThread1;
hThread1 = CreateThread(NULL,0,fun1Proc,NULL,0,NULL);
CloseHandle(hThread1);
cout << "Main thread is runing" << endl;
cout << "A" << endl;
cout << "B" << endl;
cout << "C" << endl;
cout << "D" << endl;
cout << "E" << endl;
}
DWORD WINAPI fun1Proc(
LPVOID lpParameter
)
{
cout << "Thread1 is runing" << endl;
cout << "F" << endl;
cout << "G" << endl;
cout << "H" << endl;
cout << "I" << endl;
cout << "J" << endl;
return 0;
}
那结果为什么有两个main thread is runing ?
善良超锅锅
2012-06-27
打赏
举报
回复
线程并不知道自己被挂起过的。
morebread
2012-06-27
打赏
举报
回复
1 单核的话是的,但不一定是主线程的,有可能是其他程序线程挂起
2 时间片结束后cpu执行中断,将当前现场的信息保存下来,返回的时候再恢复现场。具体可以了解下cpu中断的相关文档
善良超锅锅
2012-06-27
打赏
举报
回复
子线程是不是也要等到主线程的第一个时间片用完挂起时才能被执行吗?
对于只有一个cpu 单核,不支持多线程的电脑来说是这样的。因为每一时刻只能有一个线程在cpu上运行。这和他们的父子线程关系没关系。
主线程挂起之前执行到哪里就返回到哪里。每个线程在挂起前系统都会记录这个这个挂起时一瞬间的状态,线程获得时间片重新运行时会接着运行 就好像没有被挂起过一样。
C++
主
线程
与子
线程
的关系
C++
主
线程
与子
线程
的关系 一、
主
线程
和子
线程
执行顺序 在C++中main函数是程序运行便会执行,即是
主
线程
。在此之后创建的
线程
属于子
线程
。那么
问题
来了,
主
线程
和子
线程
谁的优先级更高?
主
线程
总是能优先...
c++
主
线程
和子
线程
一.main()函数是
主
线程
函数,在main()函数中创建的
线程
属于子
线程
,那
主
线程
和子
线程
的优先级谁更高呢? 可以看下另外一篇文档:link 在一个
线程
中开启另外一个新
线程
,则新开
线程
称为该
线程
的子
线程
,子
线程
初始...
Qt中
主
线程
与子
线程
之间操作的
问题
Qt中
主
线程
与子
线程
之间操作的
问题
今天在工作的时候遇到一个Qt中关于多
线程
的
问题
,困扰了半天时间,在同事的帮助下解决了,因此来记录一下,以免下次在遇到时又一脸懵,也供像我一样的小白借鉴。好与不好请勿乱评...
C++中的
主
线程
、子
线程
主
线程
(main thread)通常是一个程序开始执行时系统自动创建的
线程
,而子
线程
(child thread或worker thread)则是由
主
线程
或其他子
线程
创建的
线程
。这是一个基础的
线程
使用例子,实际应用中可能会涉及到更多的
问题
...
Java多
线程
--让
主
线程
等待子
线程
执行完毕(CountDownLatch类)
使用Java多
线程
编程时经常遇到
主
线程
需要等待子
线程
执行完成以后才能继续执行,那么接下来介绍一种简单的方式使
主
线程
等待。 CountDownLatch是一个同步辅助工具,用于使一个或多个
线程
等待(即阻塞)知道一组在...
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章