• 线程1-线程常用方法


    1、线程方法
    1)、start(),启动线程,并进入就绪状态,随时等待执行
    2)、run(),重写的方法,开始执行线程
    3)、currentThread(),调用当前线程
    4)、getName(),获取线程名字
    5)、setName(),设置线程名字
    6)、yield(),调用此方法的线程,释放当前cpu的执行权,cpu执行别的线程,对象锁会不会释放
    7)、join(),在A线程中调用B线程的join方法,A线程暂停执行,执行B线程,直至B线程执行完成,
    A线程接着join()方法之后的代码继续执行。
    8)、isAlive(),线程是否存活
    9)、sleep(l),让当前线程睡眠l毫秒。
    10)、wait(),notify(),notifyAll()

    package com.thread.test;
    
    class Thread1 extends Thread{
        @Override
        public void run(){
            Thread.currentThread();
            System.out.println(Thread.currentThread().getName());
            for(int i = 1; i <=100 ; i++){
            System.out.println(Thread.currentThread().getName()+"===="+i);
            }
        }
    }
    
    /**
     * 线程的主要方法
     *    1、start(),启动线程,并进入就绪状态,随时等待执行
     *    2、run(),重写的方法,开始执行线程
     *    3、currentThread(),调用当前线程
     *    4、getName(),获取线程名字
     *    5、setName(),设置线程名字
     *    6、yield(),调用此方法的线程,释放当前cpu的执行权,cpu执行别的线程,对象锁会不会释放
     *    7、join(),在A线程中调用B线程的join方法,A线程暂停执行,执行B线程,直至B线程执行完成,
     *        A线程接着join()方法之后的代码继续执行。
     *    8、isAlive(),线程是否存活
     *    9、sleep(l),让当前线程睡眠l毫秒。
     */
    
    public class TestThread{
        public static void main(String[] args) {
            Thread.currentThread().setName("主线程");
            Thread1 t1 = new Thread1();
            t1.setName("子线程1");
            t1.start();
            
            for(int i = 1 ; i<= 100 ; i++){
                System.out.println(Thread.currentThread().getName()+"......"+i);
                if(i % 10 == 0){
                    Thread.currentThread();
                    Thread.yield();//释放当前cpu
                }
                if(i == 20){
                    Thread1 t2 = new Thread1();
                    t2.setName("子线程2");
                    try {
                        t2.join();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    2、线程优先级
    线程调度
    (1)时间片策略,同优先级线程,组成先进先出队列,使用时间片策略
    (2)抢占式策略,优先级高的先执行

  • 相关阅读:
    通过elasticsearch对日志进行搜索热词统计
    登陆获取shell时的配置文件加载过程
    linux共享库加载
    linux安全相关
    ELK常用API使用方法
    linux bash缓存
    redis主从架构及redis集群
    排查电脑的网络问题
    Logstash添加Protobuf解析插件
    Macaca上手体验
  • 原文地址:https://www.cnblogs.com/fubaizhaizhuren/p/Thread.html
Copyright © 2020-2023  润新知