cms建站方案,容县网站开发,网站做sem能够提高收录量吗,安徽今天的新消息线程简介
java语言提供了并发机制#xff0c;程序员可以在程序中执行多个线程#xff0c;每一个线程完成一个功能#xff0c;并与其他线程并发运行。
一个进程是一个包含有自身地址的程序#xff0c;每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进…线程简介
java语言提供了并发机制程序员可以在程序中执行多个线程每一个线程完成一个功能并与其他线程并发运行。
一个进程是一个包含有自身地址的程序每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每个进程一段有限的使用CPU的时间(也可以称为 CPU 时间片)CPU 在这段时间中执行某个进程然后下一个时间片又跳至另一个进程中去执行。由于 CPU 转换较快所以使得每个进程好像是同时执行一样。
一个线程则是进程中的执行流程一个进程中可以同时包括多个线程每个线程也可以得到一小段程序的执行时间这样一个进程就可以具有多个并发执行的线程。
创建线程
1.继承Thread类
Thread类是java.lang包中的一个类从这个类中实例化的对象代表线程启动一个新线程需要建立Thread实例。
继承Thread类创建新线程 Thread 对象需要一个任务来执行任务是指线程在启动时执行的工作该工作的功能代码被写在run方法中然后调用Thread类中的start方法执行线程
2.实现Runnable接口
到目前为止线程都是通过扩展Thread类来创建的如果需要继承其他类而且还要使当前类实现多线程那么可以通过Runnable接口来实现。
1创建Runnable对象
2使用参数为Runnable对象的构造方法创建Thread实例
3调用start方法启动线程 线程的生命周期
线程具有生命周期其中包含 7 种状态分别为出生状态、就绪状态、运行状态、等待状态、休眠状态、阻塞状态和死亡状态。出生状态就是线程被创建时处于的状态在用户使用该线程实例调用start方法之前线程都处于出生状态;当用户调用 start方法后线程处于就绪状态(又被称为可执行状态);当线程得到系统资源后就进入运行状态。
一日线程进入可执行状态它会在就绪与运行状态下转换同时也有可能进入等待、休眠、阻塞或死亡状态。当处于运行状态下的线程调用 Thread 类中的 wait方法时该线程便进入等待状态进入等待状态的线程必须调用Thread类中的notify方法才能被唤醒而调用notifyAll方法可将所有处于等待状态下的线程唤醒;当线程调用 Thread 类中的 sleep方法时则会进入休眠状态。如果一个线程在运行状态下发出输入/输出请求该线程将进入阻塞状态在其等待输入/输出结束时线程进入阻塞状态对于阻塞的线程来说即使系统资源空闲线程依然不能回到运行状态。当线程的run方法行完毕时线程进入死亡状态。
虽然多线程看起来像同时执行但事实上在同一时间点上只有一个线程被执行只是线程之间切换较快所以才会使人产生线程是同时进行的假象。在Windows操作系统中系统会为每个线程分配一小段 CPU 时间片一旦 CPU时间片结束就会将当前线程换为下一个线程即使该线程没有结束。
操作线程的方法
线程的休眠
sleep方法可以让线程休眠以及指定休眠时间。
由于 sleep方法的执行有可能抛出InterruptedException 异常所以将 sleep0方法的调用放在 y-catch 块中。虽然使用了 sleep0方法的线程在一段时间内会醒来但是并不能保证它醒来后进入运行状态只能保证它进入就绪状态。 在本实例中定义了 getC0方法该方法用于随机产生 Color 类型的对象并且在产生线程的匿名内部类中使用 getGraphics0方法获取 Graphics 对象使用该对象调用 setColor0方法为图形设置颜色。调用 drawLine0方法绘制一条线段同时线段会根据纵坐标的变化自动调整。
线程的加入
当某个线程使用 join方法加入另外一个线程时另一个线程会等待该线程执行完毕后再继续。 线程的中断
如果线程是因为使用了sleep或wait方法进入了就绪状态可以使用Thread类中interrupt方法使线程离开run方法同时结束线程但程序会抛出InterruptedException 异常用户可以在处理该常时完成线程的中断业务处理如终止 while 循环。 线程的礼让
Thread 类中提供了一种礼让方法使用 yield方法表示它只是给当前正处于运行状态的线程一个提醒告知它可以将资源礼让给其他线程但这仅是一种暗示没有任何一种机制保证当前线程会将资源礼让。
线程的优先级
每个线程都具有各自的优先级线程的优先级可以表明在程序中该线程的重要性如果有很多线程处于就绪状态系统会根据优先级来决定首先使哪个线程进入运行状态。数字越大表示越重要。 线程的同步机制
同步锁就好比一个人上厕所时进入洗手间会锁上出来时再将门打开下个人进去会避免资源共享引发的冲突。