方法-java怎么用多线程并发运行for?

问题描述

java怎么用多线程并发运行for?

如果把下面的改成十个线程并发运行不同的for语句,,就我最下面写好的那个方法,参数用定义好的数组里面的十个int变量,请问要怎么写?

 public static void main(String[] args) {
            for(Thread t:getThreads()){
                t.start();
            }
        }
        public static Thread[] getThreads(){
            Thread[] thread = new Thread[10];
            for(int i=0;i<10;i++){
                final Integer num = new Integer(i);
                thread[i] = new Thread(new Runnable(){
                    public void run() {
                        int j=5;
                        while(j-->0){
                            System.out.println("this is thread"+num);
                        }
                    }
                });
            }
            return thread;
        }

        public static void  bbq(int a){
            for(int b=a;b<a+2;b++){
                System.out.println("for循环"+"起始值为"+a+"终止值为"+(a+2));
            }
            }

解决方案

 for(Thread t:getThreads()){
                t.start();
            }
                        因为线程执行时间太短了,用循环模拟不出效果来。
                        改成下面的方式
    Thread[] thread =getThreads()   ;
    thread[0].start();
    thread[1].start();
    thread[2].start();
    thread[3].start();
    thread[4].start();

解决方案二:

 public class MyThread extends Thread{
    private int num = 0;
    public MyThread(Integer num){
        this.num = num;
    }
    public void run(){
        bbq(num);
    }
    public static MyThread[] getThreads(){
        MyThread[] thread = new MyThread[10];
        for(int i=0;i<10;i++){
            thread[i] = new MyThread(i);
        }
        return thread;
    }

    public static void  bbq(int a){
        for(int b=a;b<a+2;b++){
            System.out.println("for循环"+"起始值为"+a+"终止值为"+(a+2));
        }
    }
    public static void main(String[] args) {
        for(Thread t:getThreads()){
            t.start();
        }
    }

}
时间: 2025-01-02 07:53:13

方法-java怎么用多线程并发运行for?的相关文章

解决Java多线程并发的计数器问题

问题描述 解决Java多线程并发的计数器问题 3C public class Counter { public static int count = 0; public synchronized static void inc() { count++; } public static void main(String[] args) { //同时启动1000个线程,去进行i++计算,看看实际结果 for (int i = 0; i < 1000; i++) { new Thread(new Ru

java线程-java中的多线程?线程的并发问题

问题描述 java中的多线程?线程的并发问题 多线程具体代表java中程序的什么?它指的实际功能上的什么情况?详细求解 解决方案 多线程和进程的关系详解: 1.当我们运行QQ程序时,操作系统就会为这个程序创建一个QQ进程(QQ~PCB)并且分配CPU.内存等资源. 2.但这个进程中包含着:发送大型的线程.接受文件的线程.发送文字信息的线程.发送文字信息的线程等多个不同功能的线程. 因而我们才能一边发送文件,一边发送文字信息同时操作.这些线程都共享着QQ进程中的CPU.内存等资源. 总结:所以说进

java多线程并发问题求解

问题描述 java多线程并发问题求解 父类中定义了几个成员变量String类型 a,b,c,这个父类被几个子类共同继承了, 各个子类中在构造器内初始化了a,b,c变量,问多线程调用每一个子类时会 产生并发问题吗? 父类: 解决方案 首先,需要看你的这类是如何设计的,如果只是提供 了构造函数来初始化这几个成员变量,而没有提供外界修改方法如setA...等方法的话,那么你这个类就是线程安全的,因为对象的信息不可能被外界改变. 如果提供了修改方法,那么对于同一个对象,置于多线程访问条件下,就有可能出现

java 关于类似售票系统的多线程并发 的问题

问题描述 java 关于类似售票系统的多线程并发 的问题 本人对多进程和多线程不大了解,还请各位高手解答下,先谢了.问题如下: 1.多线程的并发,我查了下资料,一般解释的是:一个进程可以包含多个线程,一个线程完成一个功能,这样,进程执行的时候,它包含的多个线程可以看成同时执行. 那多线程的并发,可不可以有另外的理解:如果这时的某个进程只有一个线程,那么,同时有多个类似的进程同时启动,这时是不是就产生了多个进程下要同时完成相同任务的多个线程,这算不算多线程的并发? 下面拿售票系统举例说明下, 2.

php多线程并发实现方法_php技巧

本文实例讲述了php多线程并发实现方法.分享给大家供大家参考,具体如下: java里多线程就是一个new thread的事情,php依赖apache靠着linux底层有一个多线程的办法. 这里就来说说如果你无法操控apache的服务器,如何模拟php并发 <?php if(function_exists('date_default_timezone_set')) { date_default_timezone_set('PRC'); } function a() { $time = time()

Java笔记:多线程

一些概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程 是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程.比如在 Windows 系统中,一个运行的 exe 就是一个进程. 线程 是指进程中的一个执行流程,一个进程中可以运行多个线程.比如 java.exe 进程中可以运行很多线程.线程总是属于某个进程,进程中的多个线程共享进程的内存. 同时 执行是人的感觉,在线程之间实际上轮换执行. 多线程间堆空间共享,栈空间独立.堆存的是地址

单元性能测试之使用JUnitPerf测试多线程并发

简介: 单元测试和性能测试在测试领域属于要求相对较高的测试活动,也是测试工程师成长.向上发展的反向.单元测试评测我们的代码实现功能的情况,性能测试则企图分析应用程序的性能表现和负载能力.那么"单元性能测试"能做什么?我们可以这样说,单元性能测试以单元测试的形式对代码进行性能测试.单元性能测试像单元测试一样,需要测试人员编写测试代码,但现在关注的不是代码的功能实现情况了,而是想得到被测试代码的性能数据,包括执行方法耗时.多线程并发是否线程安全.内存是否泄漏.是否存在短期循环对象等.单元性

了解Java语言中的并发性和Scala提供的附加选项

本文是一个有关 JVM 并发性的新系列第一篇,将介绍 Java 7 中最新的并发性编程功能,还将介绍一些 Scala 增强.本文还为帮助您理解 Java 8 中的并发性特性扫清了障碍. 处理器速度数十年来一直持续快速发展,并在世纪交替之际走到了终点.从那时起,处理器制造商更多地是通过增加核心来提高芯片性能,而不再通过增加时钟速率来提高芯片性能.多核系统现在成为了从手机到企业服务器等所有设备的标准,而这种趋势可能继续并有所加速.开发人员越来越需要在他们的应用程序代码中支持多个核心,这样才能满足性能

java 生产者消费者问题 并发问题的解决(转)

引言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,如下图所示,生产者向空间里存放数据,而消费者取用数据,如果不加以协调可能会出现以下情况: 生产者消费者图 存储空间已满,而生产者占用着它,消费者等着生产者让出空间从而去除产品,生产者等着消费者消费产品,从而向空间中添加产品.互相等待,从而发生死锁. 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品.解决生产者/