zoukankan      html  css  js  c++  java
  • 多线程-java

    继承Thread

    public class ThreadTest extends Thread{
        
        private ThreadTestMain test;
        //private ThreadTestJunit test;
    @Override
    public void run(){ synchronized (this){ if(test.student_number_op>0){ Date date = new Date(); long time1 = new Date().getTime(); System.out.println(Thread.currentThread().getName()+"打了一份饭,还剩下"+--test.student_number_op+"个学生没有打,现在的时间是"+time1); } } } }

    实现Runnable接口,

    Runnable是接口,Thread是类,Thread类实现了Runnable接口,

    Runnable与Thread避免了继承的局限,一个类可以实现多个接口,只能继承一个类;

    继承了Thread就无法继承其他类

    public class RunnableTest implements Runnable{
        
        private ThreadTestMain test;
        //private ThreadTestJunit test;
    @Override
    public void run(){ synchronized (this){ if(test.student_number_op>0){ Date date = new Date(); long time1 = new Date().getTime(); System.out.println(Thread.currentThread().getName()+"打了一份饭,还剩下"+--test.student_number_op+"个学生没有打,现在的时间是"+time1); } } } }

    main,

    public class ThreadTestMain {
        
        public static final int Thread_Number = 100;
        public static final int Student_Number = 1000;
        public static int student_number_op = Student_Number;
    public static int thread_number_op = Thread_Number;
    public static ThreadTest ThreadTest = new ThreadTest(); public static RunnableTest RunnableTest = new RunnableTest(); public static void main(String[] args) { // TODO Auto-generated method stub int i = 0; while (thread_number_op>0) { new Thread(ThreadTest, ++i+"号饭堂窗口").start();
    //new Thread(RunnableTest, ++i+"号饭堂窗口").start();
    i++;
    thread_number_op--;
    }
    }
    }

     Junit,电脑不好操作要谨慎,会卡死;

     Junit不会等待所有线程都执行完才结束,多线程测试还是用main比较靠谱

    public class ThreadTestJunit extends Thread{
        
        public static final int Thread_Number = 100;
        public static final int Student_Number = 1000;
        public static int student_number_op = Student_Number;
        public static ThreadTest ThreadTest = new ThreadTest();
        public static RunnableTest RunnableTest = new RunnableTest();
        
        @Before
        public void setUp() throws Exception {
            student_number_op = Student_Number;
        }
    
        @After
        public void tearDown() throws Exception {
            
        }
    
        @Test
        public void test1() {
            
            int i = 0;
            while (student_number_op>0) {
                new Thread(ThreadTest, ++i+"号饭堂窗口").start();
                i++;
            }
        }
        
        @Test
        public void test2() {
            
            int i = 0;
            while (student_number_op>0) {
                new Thread(ThreadTest, ++i+"号饭堂窗口").start();
                i++;
            }
        }
    
    }
  • 相关阅读:
    gbk学习笔记
    在freebsd下编译nodejs,出现无法找到execinfo.h头文件的错误
    php 截取GBK文档某个位置开始的n个字符
    linux下,phpstorm配置oracle jdk
    gb2312学习笔记
    freebsd下vim默认的vi操作方式太难用,可通过启用vim自带配置文件解决
    freebsd通过ssh远程登陆慢,用户认证时间长解决办法
    php输出全部gb2312编码内的汉字
    visibility:hidden 与 display:none 的区别
    java 实现文件/文件夹复制、删除、移动(二)
  • 原文地址:https://www.cnblogs.com/yanzhe/p/7644494.html
Copyright © 2011-2022 走看看