解决方案 »
- WPF TabControl中的用户控件被加载两次?
- 已在此范围定义了名为“scd”的局部变量
- 如何使用c#中的serialPort控件通过串口发送16进制数???
- 对自己写的属性进行调试时,有没有代法在单步时不进入到属性里面?这样可以省去许多调试时的麻烦。详见文章内容。
- windows form 窗口创建子窗口,并设置自窗口里面的某个控件的值,
- 求助关地c#操作excel的问题
- .net应用程序资源占用问题
- 关于C#里解析HTML用的正则表达式问题
- WPF,ObjectDataProvider绑定,为什么不显示
- 如何将程序在进程中隐藏?各位高手帮帮忙,谢谢!!
- 程序屏幕保护后无相应
- 如何使用Visual Studio实现上传一个视频文件,并且在上传以后能播放?
下面是一个VC++的多线程控制台程序
Handle Htread;
for(int i=0;i<ThreadId;i++)
{
此处可以添加一些处理
hThread=CreateThread(NULL,0,FunProc,&msg[i],0,NULL);//创建线程
// CloseHandle(hThread);//关闭线程的句柄
}
这样就能处理多线程
其中的FunProc就是要调用的线程函数
多线程就是NEW出多个线程:
多线程是多个线程并发执行,当然单核实际上是不可能并发的,只是看上去并发了。你可以NEW出多个线程,让多个线程同时工作。
把这些线程放到线程池里:
并不一定要放到线程池里,自带的线程池是可以独立管理线程的,你可以NEW一个线程池,然后让他帮你管理你的线程,比如:服务器监听,有新的连接就开启一个新的线程,执行完后线程池可以回收。而自己NEW的线程池需要自己管理。当然线程池也有坏处。
等这些线程完成后,通知线程池继续下一组:
多线程是说多个任务同时执行,至少看上去是,比如有NEW了5个线程,就可以有5个任务同时执行,多的任务是不会等待的,线程池就不同,比如你NEW了一个线程池,设置了线程池最大线程大小为5个(根据机器有差别,我的可以设置200个没问题),当有5个任务在执行时,新的任务等待,等5个中一个执行完了就进入一个任务。
当设置200个时,就可以同时执行200个任务,以此类推。但自带的线程池开启线程是有时间的,大概1秒开启不会超过2个线程。
只是我的理解,错误的请大家指出。