java实现多线程

Posted 孟宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现多线程相关的知识,希望对你有一定的参考价值。

package com.my.lianxi;

import java.util.ArrayList;
import java.util.List;

public class ThreadTest {    
    
    public static void main(String[] args) throws InterruptedException {    
        new Monitor().start();   
        
        new MyThread().launch();    
    }    
    
    
    
}    
    
class MyThread extends Thread {    
    //被争抢资源    
    public static Integer i = 0;    
    //线程容器    
    public static List<MyThread> list = new ArrayList<MyThread>();    
    //启动50个线程    
    public void launch() {    
        for (int i = 0; i < 50; i++) {    
            MyThread temThread = new MyThread();    
            list.add(temThread);    
            temThread.start();    
        }    
    }    
    
    @Override    
    public void run() {    
           
            try {    
                //增大争抢强度    
                Thread.sleep(2);    
            } catch (InterruptedException e) {    
                e.printStackTrace();    
            }    
            synchronized (MyThread.i) {   
                //主要的任务    
                MyThread.i++;    
            }    
    }    
}    
    
class Monitor extends Thread {    
    
    public int n = 0;    
    
    @Override    
    public void run() {    
        while (true) {    
            try {    
                //心跳1秒    
                sleep(1000);    
            } catch (InterruptedException e) {    
                e.printStackTrace();    
            }    
    
            //判断线程是否结束    
            boolean isOver = true;    
            for (MyThread thread : MyThread.list) {    
                // 如果有一个活着就没有结束    
                if (thread.isAlive()) {    
                    isOver = false;    
                }    
            }    
            //输出格式化    
            if (n % 10 == 0 && n != 0) {    
                System.out.println();    
            }    
            //结果输出    
            if (isOver) {    
            System.out.print(n++ + "-" + MyThread.i + "; ");    
                synchronized (MyThread.i) {    
                    MyThread.i = 0;    
                }  
                MyThread.list = new ArrayList<MyThread>();  
                new MyThread().launch();    
            }    
        }    
    }    
}    

 

以上是关于java实现多线程的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程与并发库高级应用-工具类介绍

面试官:Java多线程有哪几种实现方式如何实现?

什么是JAVA的多线程?

Java多线程概述及创建

什么是Java多线程编程?

用java多线程实现服务器与客户端之间的文件传输的代码!!!急!!!!