zoukankan      html  css  js  c++  java
  • java多线程学习二

    声明:本篇博客是本人为了自己学习保存的心得,其内容主要是从大神——五月的仓颉的博客中学习而来,在此多谢大神五月的仓颉的分享,敬礼!如有疑问请联系博主,谢谢!

    本章主要记录并讲述线程在项目中常用的方法:

    1、start()

    start()方法是线程的启动方法,向cpu发出命令去调用线程对象的run()方法,产生一个异步执行的效果。延伸:在多线程的项目中,cpu执行哪一个线程的几率是随机的。

    2、run()

    run()方法只有调用了start()方法之后才有用。单独调用是没任何作用的。

    3、isAlive()

    isAlive()是获取线程的状态的(运行=true、停止=false)

    4、getId()

    在java应用中,有一个long型的全局唯一的线程ID生成器threadSeqNumber,getId()可以获取一个线程的id。

    5、getName()

    顾名思义,该方法可以获取线程的名称。

    6、getPriority()和setPriority(int newPriority)

    上面两个方法可以设置线程的优先级,两个在等待CPU的线程,优先级高的线程越容易被CU选择执行。前提:必须要两个线程同事执行。

    看如下例子:

    public class MyThread1 implements Runnable{
    
        @Override
        public void run() {
           
                    System.out.println("线程1的优先级:"+Thread.currentThread().getPriority());
    } }
    public class MyThread2 implements Runnable{
        @Override
        public void run() {
            
                System.out.println("线程2的优先级:" + Thread.currentThread().getPriority());
           
        }
    }
    public class Test {
        
        public static void main(String[] args) {
            
            MyThread1 myThread1 = new MyThread1();
            MyThread2 myThread2 = new MyThread2();
            Thread thread1 = new Thread(myThread1);
            Thread thread2 = new Thread(myThread2);
            thread2.setPriority(4); 
            thread2.start();
            thread1.start();
            System.out.println("main: "+Thread.currentThread().getPriority());
            
    
        }
    
    }

    运行结果:

    main: 5
    线程2的优先级:4
    线程1的优先级:5

    可以看出优先级高的线程先执行(这块我其实是有些疑问的,经过自己的测试,发现并没有得到相应的结果,以后有空多研究研究)

    7、isDaeMon、setDaemon(boolean on)

    该方法设置线程为守护线程,守护线程是一种的特殊的线程,作用是为其他线程提供便利,最典型的事例就是java的垃圾回收机制,GC线程,伴随着主线程的结束而销毁。

    8、join()

    该方法主要作用是等待线程销毁,与sleep()方法的区别是:sleep(2000)不释放锁,join(2000)释放锁。

  • 相关阅读:
    iOS exit(0); 直接退出程序
    友盟推送简单调用
    KxMenu下拉菜单
    打开相册另类写法
    简洁调用字号
    十六进制颜色宏
    Swift定义单例
    不要在初始化方法和dealloc方法中使用Accessor Methods
    copyin函数
    c语言中的赋值
  • 原文地址:https://www.cnblogs.com/bestxyl/p/8671339.html
Copyright © 2011-2022 走看看