• Java进阶知识查漏补缺03


    java线程的一些方法:

    package com.cjf.Thread;
    
    /**
     * Created with IntelliJ IDEA.
     * Description:
     * Author: Everything
     * Date: 2020-07-01
     * Time: 12:26
     */
    
    //1. start(): 启动当前线程;调用当前线程的run()
    //2. run(): 通常需要重写Thread类中的此方法, 将创建的线程要执行的操作声明在此方法中
    //3. current Thread():静态方法,返回执行当前代码的线程
    //4. getName(): 获取当前线程的名字
    //5. setName():设置当前线程的名字
    //6.yield():释放当前CPU的执行权
    //7.join():在线程A中调用线程B的join方法,A阻塞
    //8.sleep(long):让当前线程休眠
    
    //线程的优先级
        //getPriority():获取线程的优先级
        //setPriority(int ):设置线程的优先级
    
    class HelloThread extends Thread{
        public void run() {
            for (int i = 0; i < 100; i++) {
                if (i%2==0){
                    try {
                        sleep(10);//阻塞一秒
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName()+":"+i+"优先级"+Thread.currentThread().getPriority());
                }
                if (i%20==0){
    //                Thread.yield();
                    //只是当前线程释放了CPU,但是有可能当前线程又重新抢到CPU
                }
            }
        }
    }
    
    public class ThreadMethodTest {
        public static void main(String[] args) {
            HelloThread h1 = new HelloThread();
            h1.setName("子线程");
            //设置分线程的优先级
            h1.setPriority(Thread.MAX_PRIORITY);
    
            h1.start();
    
    
    
            Thread.currentThread().setName("主线程");
            Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
            for (int i = 0; i < 100; i++) {
                if (i % 2 == 0) {
                    System.out.println(Thread.currentThread().getName() + ":" + i+"优先级"+Thread.currentThread().getPriority());
                }
    
                if (i == 20) {
                    //当20时,让h1子线程调入执行,且必须执行完
                    try {
                        h1.join();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
    
                }
            }
    
        }
    }
  • 相关阅读:
    【C语言天天练(二二)】位操作
    远程调用内核接口的封装类(RCKObjs)
    03010_防止SQL注入
    PHP 5 SimpleXML 函数
    PHP 5 String 函数
    PHP 5 MySQLi 函数
    PHP 杂项 函数
    PHP PDO
    PHP 5 时区
    分享海量 iOS 及 Mac 开源项目和学习资料
  • 原文地址:https://www.cnblogs.com/cuijunfeng/p/13222398.html
Copyright © 2020-2023  润新知