发布时间:2012-03-14 阅读量:1616 来源: 我爱方案网 作者:
多线程编程技术是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。
无源晶振与有源晶振是电子系统中两种根本性的时钟元件,其核心区别在于是否内置振荡电路。晶振结构上的本质差异,直接决定了两者在应用场景、设计复杂度和成本上的不同。
RTC(实时时钟)电路广泛采用音叉型32.768kHz晶振作为时基源,但其频率稳定性对温度变化极为敏感。温度偏离常温基准(通常为25℃)时,频率会产生显著漂移,且偏离越远漂移越大。
有源晶振作为晶振的核心类别,凭借其内部集成振荡电路的独特设计,无需依赖外部电路即可独立工作,在电子设备中扮演着关键角色。本文将系统解析有源晶振的核心参数、电路设计及引脚接法,重点阐述其频率稳定度、老化率等关键指标,并结合实际电路图与引脚定义,帮助大家全面掌握有源晶振的应用要点,避免因接线错误导致器件失效。
晶振老化是影响其长期频率稳定性的核心因素,主要表现为输出频率随时间的缓慢漂移。无论是晶体谐振器还是晶体振荡器,在生产过程中均需经过针对性的防老化处理,但二者的工艺路径与耗时存在显著差异。
在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。