zoukankan      html  css  js  c++  java
  • JAVA笔记:多线程的理解及应用(二)

    Java中的主方法其实也是一个线程,就叫做主线程。

    问:既然主方法是以线程的形式出现的,那么Java中至少有多少个线程呢?

    答案:至少有两个线程。每次启动Java的时候其实都会启动JVM,则其中的垃圾回收机制也算是一个线程,则一共有两个线程,主线程和GC。


    判断线程是否启动可以使用.isAlive方法,返回的是布尔值。


    线程的强制运行

    在线程的操作中,可以使用join()方法让一个线程强制运行,线程强制运行期间,其他线程无法运行,必须等该线程运行完毕才能执行。

    线程的休眠

    程序中可以实现线程短暂的休眠,直接使用Thread.sleep();即可。

    线程的终止

    可以实现线程的终止,使用interrupt方法即可。


    后台线程

    在Java中,只要前台有一个线程在运行,则整个Java进程都不会消失,所以此时可以设置一个后台线程,此时如果Java进程结束了,此线程也不会消失。

    使用setDaemon()方法即可。


    线程的优先级

    在Java线程中,哪个线程的优先级最高就先执行哪个线程。

    优先级分类如下:



    特殊:在主线程main中,默认的优先级是NORM_PRIORITY,即主线程的优先级为中等。


    线程的礼让

    在线程的使用中,可以使用yield()方法实现线程的礼让,就是暂时把当前线程暂停,让给其他线程执行。

    例:

    class MyThread implements Runnable{	// 实现Runnable接口
    	public void run(){	// 覆写run()方法
    		for(int i=0;i<5;i++){
    			try{
    				Thread.sleep(500) ;
    			}catch(Exception e){}
    			System.out.println(Thread.currentThread().getName()
    					+ "运行,i = " + i) ;	// 取得当前线程的名字
    			if(i==2){
    				System.out.print("线程礼让:") ;
    				Thread.currentThread().yield() ;	// 线程礼让
    			}
    		}
    	}
    };
    public class ThreadYieldDemo{
    	public static void main(String args[]){
    		MyThread my = new MyThread() ;	// 实例化MyThread对象
    		Thread t1 = new Thread(my,"线程A") ;
    		Thread t2 = new Thread(my,"线程B") ;
    		t1.start() ;
    		t2.start() ;
    	}
    };

    总结:本篇主要学习了Java中线程的休眠,终止,礼让等功能,其实就是对线程进行的一个基本操作。





  • 相关阅读:
    jq判断input 复选框有没有选
    jq根据id替换修改或添加css属性
    cookie和session的关系和区别
    tp5 统一返回json格式
    tp5 上传图片(自定义图片路径)
    tp5 生成随机数
    tp5 删除图片以及文件
    tp5 上传视频方法
    tp5 跨域问题
    js替换div里的内容
  • 原文地址:https://www.cnblogs.com/tryitboy/p/4231123.html
Copyright © 2011-2022 走看看