• Java中的多线程


    1、 线程中的主要方法

        a) isAlive() 判断线程是否还活着,即线程是否未终止

        b) getPriority() 获得线程的优先级

        c) setPriority() 设置线程的优先级

        d) Thread.sleep() 设置线程休眠的时间

        e) jion() 把当前线程与该线程合并

        f) yield() 让出CUP

        g) 线程的优先级

                i. Thread.MIN_PRIORITY = 1 最小优先级

                ii. Thread.NORM_PRIORITY = 5 默认优先级

                iii. Thread.MAX_PRIORITY = 10 最大优先级

    2、 线程的中断

            a) Stop() 已过时,基本不用

            b) Interrupt() 简单,粗暴

            c) 推荐使用的是设置标志位

    3、 线程的高级操作

            a) wait() 使当前线程等待,直到被其线程唤醒

            b) notify() 唤醒等待的线程

    4、 实现同步的两种方式(主要是synchronized的使用)

            a) 锁代码块

                    i. Synchronized(object){要锁的代码块}

            b) 锁方法(推荐使用)

                    i. Synchronized void method(){}

    1、 Java多线程的实现主要有两个方式,一个是通过继承Thread类,一个是Runnable接口的实现。在使用多线程时主要用到两个方法一个是重写run()方法,用来实现将要执行的代码。第二个方法是start(),用来启动线程。

    2、 Thread类的实现

    复制代码
     1 public class ThreadDemo extends Thread{
     2  
     3     public void run(){
     4         for(int i = 0; i < 20; i++){
     5             System.out.println(Thread.currentThread().getName()+i);
     6         }
     7     }
     8     public static void main(String[] args) {
     9  
    10         ThreadDemo td1 = new ThreadDemo();
    11         td1.setName("线程1: ");
    12  
    13         ThreadDemo td2 = new ThreadDemo();
    14         td2.setName("线程2: ");
    15  
    16         //获取优先级
    17         System.out.println("线程一的优先级为:"+td1.getPriority());
    18  
    19         //设置线程的优先级优先级的值为0 - 10 从小到大
    20         td1.setPriority(MIN_PRIORITY);
    21         td2.setPriority(MAX_PRIORITY);
    22  
    23         td1.start();
    24         td2.start();
    25  
    26  
    27     }
    28  
    29 }
    复制代码

    1、 Runnable接口的实现

    复制代码
     1 ublic static void main(String[] args) {
     2         TicketRunnable tr = new TicketRunnable();
     3  
     4         Thread td1 = new Thread(tr);
     5         td1.setName("窗口1");
     6         Thread td2 = new Thread(tr);
     7         td2.setName("窗口2");
     8         Thread td3 = new Thread(tr);
     9         td3.setName("窗口3");
    10  
    11         td1.start();
    12         td2.start();
    13         td3.start();
    14     }
    复制代码
  • 相关阅读:
    Integration Services学习(3):数据流任务(下) (转自游子吟)
    delete和truncate的区别
    Integration Services 学习(6):包配置 (转自游子吟)
    SSIS 学习(2):数据流任务(上) (转自游子吟)
    Integration Services 学习(5):容器 (转自游子吟)
    Integration Services 学习(4):变量和表达式 (转自游子吟)
    in与exist , not in与not exist 的区别
    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY
    关于Reporting Services的Q&A
    SSIS 学习(1) 概要 (转自游子吟)
  • 原文地址:https://www.cnblogs.com/yulei126/p/6757623.html
Copyright © 2020-2023  润新知