vc同时执行两个代码的方法,这问题多线程能解决吗?

如果多线程能解决,应该如何编写呢?如果多线程不能解决,那怎么解决呢?... 如果多线程能解决,应该如何编写呢?
如果多线程不能解决,那怎么解决呢?
展开
 我来答
yanpongchen
2013-08-25 · TA获得超过100个赞
知道答主
回答量:94
采纳率:0%
帮助的人:67.6万
展开全部
能,这时肯定的,只是多线程同时执行多个代码,他的原理其实本质上还是没有做到真正的同步,因为要执行的代码是分时段执行的,由于,时段特别短,所有感觉就是同步的一样。可以用CreateThread函数创建几个不同的线程,然后再不同的线程里添加你要执行的代码,就OK啦,但是要注意的一点是,如果线程共享资源的话,就有点麻烦,要创建互斥对象,或者创建代码区。推荐你去看孙鑫老师的视频教程。
追问
创建线程的表头是什么?
如何创建新线程?新线程是在main{}里面还是外面书写?
如何写触发线程的代码?(触发函数)
(简略回答一下就好了)
追答
#include "stdio.h"
#include "windows.h"
DWORD WINAPI Thread1(LPVOID lpParam);
DWORD WINAPI Thread2(LPVOID lpParam);
void main()
{
HANDLE hHandle=CreateThread(NULL,0,Thread1,NULL,0,NULL);
CloseHandle(hHandle);
hHandle=CreateThread(NULL,0,Thread2,NULL,0,NULL);
CloseHandle(hHandle);
while(1);
}
DWORD WINAPI Thread1(LPVOID lpParam)
{
while(1)
{
printf("Thread1\n");
Sleep(100);
}
return 0;
}
GNU_CPP0x
2013-08-26 · 超过18用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:43.4万
展开全部
不知道你是用C++还是啥?
如果是C++, 那么请更换VS2012,然后使用一下方法创建线程:

#include <thread>

// thread_fun 函数和 thread_fun2函数为线程要执行的代码 你的问题需要定义三个函数

void thread_fun() {
// ....
}
void thread_fun2() {
// ....
}

int main() {
std::thread t1(thread_fun), t2(thread_fun), t3(thread_fun2); /*将函数直接传递给thread对象,thread对象会自动建立内核级线程(和你用CreateThread创建的线程差不多,这里的好处是所有工作交给thread对象去做), 然后thread对象会让线程自动执行传递的函数的代码*/
t1.join();
t2.join();
t3.join();
system(“pause”);
return 0;
}

按照上面的步骤 , 你基本上能编写出简单的多线程程序!!!!

上面的大妈除了main函数中的thread对象外 ,其余的代码都和C写出来的差不多。。。。。

如果楼主不懂C++ 或者 不愿使用VS2012, 那么请楼主取用楼上的CreateThread方法。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你你你你不爱他4Y
2013-08-25
知道答主
回答量:7
采纳率:0%
帮助的人:3.3万
展开全部
可以!!没有问题的!!即使有Sleep,也没有问题的,Sleep只会暂停自己线程的执行!!不影响其它线程的执行!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式