发布时间:2012-03-14 阅读量:1447 来源: 我爱方案网 作者:
多线程编程技术是Java语言的重要特点。多线程编程的含义是将程序任务分成几个并行的子任务。特别是在网络编程中,你会发现很多功能是可以并发执行的。 比如网络传输速度较慢、用户输入速度较慢,你可以用两个独立的线程去完成这两个功能,而不影响正常的显示或其它功能。
多线程是与单线程比较而言的,普通的Windows采用单线程程序结构,其工作原理是:主程序有一个消息循环,不断从消息队列中读入消息来决定下一步所要干的事情,一般是针对一个函数,只有等这个函数执行完之后,主程序才能接收另外的消息来执行。比如子函数功能是在读一个网络数据,或读一个文件,只有等读完这个数据或文件才能接收下一个消息。在执行这个子函数过程中你什么也不能干。但往往读网络数据和等待用户输入有很多时间处于等待状态,多线程利用这个特点将任务分成多个并发任务后,就可以解决这个问题。
线程是一个进程内部的控制序列,一个进程在同一时刻只能做一件事情,有了多线程后,就可以把进程设计成在同一时刻能够执行不止一件事情,每个线程处理各自独立的任务。进程的所有信息对该进程的所有线程多是共享的。每个线程有一个线程ID,用数据类型pthread_t表示,它并不能作为整数处理,操作系统不同会对这个数据类型有不同的处理,故不能直接比较大小,需要使用函数如下:
int pthread__equal(pthread_t tid1,pthread_t tid2) 成功返回0
线程可以获取自己的线程ID,通过函数pthread_t pthread_self();线程的创建需要调用函数pthread_creater(),分别有4个参数,第一个表示返回的线程ID号地址,第二个参数为需要创建的线程的属性,可以设置成默认值NULL,第三个参数是需要执行的线程函数,其类型为void *;第四个参数为线程函数的参数,如果有多个参数,可以封装成结构体。
线程的终止依赖于进程,如果进程终止,线程也相应的终止;另外在不终止进程的情况下,也有几种方式来终止线程。1.调用函数pthread_exit().2.线程从启动例程中返回,即return。3.线程可以被其他线程调用函数pthread_cancel()取消。
当一个线程通过调用函数pthread_exit退出或者简单地从启动历程中返回时,进程中的其他线程可以调用函数pthread_join来获取这个状态。也就是调用thread_join的线程都会将这个线程一直阻塞,直到指定的线程调用了pthread_exit或者返回或者被其他线程取消。
在默认的情况下,线程的终止状态被保存在对该线程调用pthread_join中,如果线程已经处于分离状态,线程的底层存储资源可以在线程终止时立即被收回,当线程被分离时,就不能用pthread_join等待他的终止状态。对分离的线程调用pthread_join则会返回一个错误值。可以调用函数pthread_detach使线程分离。
Pthread_cancel函数会向线程发送取消命令,但是线程收到后,可以选择处理或者取消这个请求。
线程清理处理函数,既是现在在退出的时候所做的扫尾工作,可以使用函数pthread_cancel_push,使用函数pthread_cancel_pop取消最近push的清理函数。通常这两函数是成对出现。
互斥锁:
多个线程对共享区操作时,可能会产生难以预料的错误,可以通过互斥锁保护数据,确保在同一时间只有一个线程访问数据。互斥量相当于一把锁,在访问共享资源前对互斥量加锁,在访问完成后释放互斥量上的锁,在对一个互斥量上锁后,其他线程如果企图想再次对其加锁,都会被阻塞直到被释放。
互斥量的数据类型为pthread_mutex_t.可以对其动态或者静态的初始化。在要使用共享数据前调用pthread_mutex_lock上锁,但是这样可能之前互斥量已经上锁的情况下线程会被阻塞,可以使用pthread_mutex_trylock尝试对互斥量加锁,解锁使用函数pthread_mutex_unlock。
在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。
随着医疗技术的进步,心电监护设备在日常生活和医疗领域中起到了至关重要的作用。而无源晶振 YSX211SL 作为一种先进的心电贴产品,以其独特的优势在市场上备受瞩目。
对于可编程晶振选型的话,需要根据企业的需求选择。在选择可编程晶振的时候注重晶振外观、晶振的频率、晶振的输出模式、晶振的型号等等,这些都是要注意的,尤其是晶振的频率和晶振输出模式以及晶振的型号都是需要注意的。
在现代科技发展中,服务器扮演着越来越重要的角色,为各种应用提供强大的计算和数据存储能力。而高品质的服务器组件是确保服务器稳定运行的关键。YSO110TR宽电压有源晶振,作为服务器的重要组成部分,具备多项优势,成为业界必备的可靠之选。
其实对于差分晶振怎么测量方式有很多种,主要还是要看自己选择什么样的方式了,因为选择不同的测量方式步骤和操作方式是不同的。关于差分晶振怎么测量的方式,小扬给大家详细的分享一些吧!