码迷,mamicode.com
首页 > 编程语言 > 详细

Java中的多线程

时间:2017-04-02 18:44:23      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:线程   sleep   tle   代码块   runnable   分享   log   线程等待   rgs   

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     }

Java中的多线程

标签:线程   sleep   tle   代码块   runnable   分享   log   线程等待   rgs   

原文地址:http://www.cnblogs.com/zhangkeyu/p/6659385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!