关于cc++中多线程的使用

关于cc++中多线程的使用,第1张

1、首先 printf 根据链接的运行时库不同,是分担线程和多线程版本,你这个应该链接多线程版本,否则会出现这种奇怪的错误。

2、这种传递参数是可行的。将结构体的指针作为这个唯一的参数传过去就可以了

要注意变量的作用域。

你这个问题可是超过200分的啊,

这个往大了说是一个比较复杂的设计方案。

实际上C语言是没有多线程的概念的,但是我们可以通过Task来实现多任务。

简单的说,可以采取以下方案:

定义一个主Task,将其置为常驻Task,用以进行Task调度和Task的启动/终了和交互的管理。

定义一个Task优先级列表,用优先级来作为Task调度和管理的基础。

定义一个共享域,和相应的事件分发/广播/传递的管理机制,由主Task来实现各Task间的事件传递。

定义3个List,实现Active,Ready,Dead的Task的管理和调度。

定义各普通Task,包含Task基本信息:Task的栈指针,Task情报,Task存储空间大小,Task的优先级,Task的事件列表(定义可以接收/发送的事件,以及可以排队的事件的个数),以及如果需要的话可以定义Task的从属(父子)关系。

另外还有几个注意点:

1 通过C的临界域(critical section)结合PV *** 作来实现某些Task的原子性处理要求。

2 通过Signal来实现中断和再开

3 如果需要处理中断和再开的话,一定要注意现场保护

4 同优先级的Task可以通过时间片轮循的方式进行多任务实现

暂时就想到这么多,有不明白的通过消息进一步交流吧:)

以上就是关于关于c/c++中多线程的使用全部的内容,包括:关于c/c++中多线程的使用、[高分,急]C语言,如何实现多线程,有具体方案,请提供!、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9519746.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存