• 复习 多线程


    复习一下多线程。

    创建线程的第一种方法: 继承 Thread

    A.java

    package com.allen;
    
    public class A extends Thread{ //注意,这里继承了 Thread
        public void run()
        {
            while (true)
            {
                System.out.println("aaaa");
            }
        }
    
    }

    调用 A.java 的 TestThread_1.java

    package com.allen;
    
    public class TestThread_1 {
        public static void main(String[] args)
        {
            A a = new A();
    //        a.run();//Single thread
            a.start();//Multiple threads
    // a.start(); //如果 uncomment 该句,将导致 exception 错误。因为一个 Thread() 对象 只能调用一次 start() 方法。
    while(true) { System.out.println("bbb"); } } }

    注意,在上面中,如果用的是 a.run() 那么就是单线程, 如果用的是 a.start() 那么就是用的多线程

    注意,一个 Thread() 对象 只能调用一次 start() 方法。

    Thread() 常用方法

     setName(): 设置线程名字

    currentThread() :获取当前线程的引用

    currentThread().getName(): 获取当前线程的名字。

    setPriority(): 设置线程的优先级。默认是5。数字越大越先执行。 举例:

         A aa = new A(); Thread t1 = new Thread(aa); t1.setPriority(Thread.NORM_PRIORITY+3);

     

    创建线程的第2种方法:实现 Runnable 接口 (implements Runnable)

    A.java

    package com.allen;
    
    public class A implements Runnable
    {
        public void run() {
            while (true)
            {
                System.out.println("aaaa");
            }
        }
        
    }

    调用 A.java 的 TestThread_1.java

    package com.allen;
    
    public class TestThread_1 {
        public static void main(String[] args)
        {
            A a = new A();
            Thread t = new Thread(a); //这里创建了一个Thread 对象
            t.start(); //调用 t 的 start() 方法
            while(true)
            {
                System.out.println("bbb");
            }
        }
    }

    OK。

    注意: 无论是继承 Thread() 类的 run() 方法,还是实现 Runnable() 类的 run() 方法都不能抛异常。因为 Thread()本身没有抛异常。

  • 相关阅读:
    C++11模板类使用心得
    Linux下MakeFile初探
    Leetcode 35 Search Insert Position 二分查找(二分下标)
    Leetcode 4 Median of Two Sorted Arrays 二分查找(二分答案+二分下标)
    数据库分库分表的应用场景及方法分析
    DB主从一致性的几种解决方法
    Redis主从复制和集群配置
    RPC vs RESTful
    Mysql锁详解
    BIO与NIO、AIO的区别
  • 原文地址:https://www.cnblogs.com/backpacker/p/2797415.html
Copyright © 2020-2023  润新知