pthread多线程教程

51单片机如何实现多线程多任务?有哪些程序可以在“后台”自己运行?

51单片机如何实现多线程多任务?有哪些程序可以在“后台”自己运行?

1、51单片机无法实现多线程任务,只能实现单线程。这是由51单片机的硬件决定的,否则多线程芯片就没有必要设计出来了。
2、51单片机的硬件资源,如:定时器、计数器、捕获器、比较器、AD转换、pwm、UART等等大部分的硬件资源,初始化以及启动由用户控制。开始运行后,51单片机的相关硬件电路能自动运行,无需干预。
3、在这些硬件资源运行过程中,用户可以进行其他操作(一般不更改正在运行的硬件资源,否则会影响初始设定)。
4、但在这些硬件资源运行结束后,大部分的情况下,对应的特殊寄存器(含中断)会被更改,此时,需用户进行查询特殊寄存器或处理中断。处理这些时,用户需要停止正在运行的程序,不能同时进行其他工作。例如:用户设置定时器为周期1S;开启定时器中断。启动定时器后,用户可以执行其他无关定时器的运算、控制。到达1S的时间时,定时器产生中断,用户执行的程序将被停止,保存现场后,程序运行跳转至定时器中断,开始执行定时器中断程序。在定时器中断程序执行结束后,恢复现场,重新从用户程序被中断的位置开始运行。

单片机中如何实现多线程,多任务?

如果不用OS, 可以将不同任务放在定时器中断里, 然后将任务分步骤执行(这大概就叫状态机吧). 比如任务1放在主循环里, 任务2放在定时器1中断里, 任务3放在定时器2中断里. 或者自己利用定时器实现时间片轮换算法. 关键是分配好任务执行的时间片, 以满足对不同事件的响应. 感觉单片机实时性的要求很高.

如何设置多线程程序的线程数?

像网络爬虫、数据库等方面多线程程序如何设置线程数?公司有一套爬虫系统,用特定关键字在搜索引擎上搜索(如Google,百度),流程大致上,从数据库批量取出关键字,然后生成相关搜索引擎的搜索任务,扔到Queue里面,后面一群消费者去“爬”。

如果是使用java的话,多线程使用线程池,在线程池初始化时指定线程的数量,同时配合相应的阻塞队列来处理过多的任务

如何多线程运行?

方式一:实现继承Thread类
步骤:
1:定义一个类去继承Thread类,比如ThreadDemo
2:重写run()方法
3:在测试类中创建ThreadDemo类的对象
4:启动线程
方式二:实现Runnable接口
步骤:
1:定义一个类,实现Runnable接口,比如RunnableDemo类
2:重写run()方法
3:创建测试类,并创建RunnableDemo类对象
4:创建Thread对象,将RunnableDeme类对象作为构造方法的参数传进去
5:启动线程