社区
C++ 语言
帖子详情
主线程和子线程的时间片问题
shouldface
2012-06-27 11:05:04
主线程创建一个子线程,默认优先级,即,主线程和子线程优先级一样,创建的子线程为立即执行的,子线程是不是也要等到主线程的第一个时间片用完挂起时才能被执行吗?
如果主线程时间片用完但程序未完 ,就执行子线程,当子线程执行完后返回到主线程的哪个点?
...全文
354
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上运行。这和他们的父子线程关系没关系。
主线程挂起之前执行到哪里就返回到哪里。每个线程在挂起前系统都会记录这个这个挂起时一瞬间的状态,线程获得时间片重新运行时会接着运行 就好像没有被挂起过一样。
深入浅出讲解多任务之进程、
线程
、协程(python版本)
单核理论上只能完成一件事情,但为什么qq、微信、微博、默默可以在同一个cpu上面运行呢?并行:真的多任务,让任务数量少于cpu核心才能保持并行。并发:假的多任务,目前我们的电脑任务很多,基本是并发的。,让紧急的任务更快执行,这其实都是假的并行。如果没有代码,必须等待。
使用文件IO 实现父进程向子进程发送信息,并总结中间可能出现的各种
问题
可能出现子进程抢夺
时间片
,先出现。
VS2010 多
线程
编程
1、多
线程
测试实例: 此时在多核CPU下,
主
线程
和子
线程
可同时运行;
时间片
是怎么分配的呢?感觉好乱呢? #include <windows.h> #include <iostream> #include <stdlib.h> using namespace std; DWORD WINAPI MyThreadProc1(LPVOID lpParame...
c++
主
线程
和子
线程
c++
主
线程
和子
线程
最近在学习c++多
线程
,写一篇博客记录下自己的收获。 一.main()函数是
主
线程
函数,在main()函数中创建的
线程
属于子
线程
,那
主
线程
和子
线程
的优先级谁更高呢? 可以看下另外一篇文档:link 在一个
线程
中开启另外一个新
线程
,则新开
线程
称为该
线程
的子
线程
,子
线程
初始优先级与父
线程
相同。不过
主
线程
先启动占用了cpu资源,如果存在
主
线程
和子
线程
争抢cpu执行权的话,看运气,谁...
Qt中
主
线程
与子
线程
之间操作的
问题
Qt中
主
线程
与子
线程
之间操作的
问题
今天在工作的时候遇到一个Qt中关于多
线程
的
问题
,困扰了半天时间,在同事的帮助下解决了,因此来记录一下,以免下次在遇到时又一脸懵,也供像我一样的小白借鉴。好与不好请勿乱评,正在学习中的小白一枚。。
问题
: 在
主
线程
中创建工作
线程
(一个while循环测试)后,想单击暂停按钮进行暂停操作和继续按钮继续执行操作,建立信号与槽的关系,工作
线程
可以正常执行,但暂停按钮发送消息后,暂停槽一直没有执行,代码如下: 有三个类:用A(
主
),B(
线程
类),C(工作执行类)代替 A.cpp: v
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章