多线程练习(java)

 1 public class TestThread
 2 {
 3     public static void main(String[] args)
 4     {
 5         RandomNumber r=new RandomNumber();
 6
 7         Thread1 t1=new Thread1(r);
 8         Thread2 t2=new Thread2(r);
 9
10         Thread thread1=new Thread(t1);
11         Thread thread2=new Thread(t2);
12
13         thread1.start();
14         thread2.start();
15     }
16 }
 1 public class RandomNumber
 2 {
 3     public int i;
 4     public int num[];
 5
 6     RandomNumber()
 7     {
 8         i=(int)(Math.random()*100)+11;
 9         num=new int[i];
10
11         for (int j=0;j<i;j++)
12         {
13             num[j]=(int)(Math.random()*100);
14         }
15     }
16 }
 1 //public class Thread1 extends Thread {
 2 public class Thread1 implements Runnable {
 3
 4     private int Thread1[];
 5     Thread1(RandomNumber rn)
 6     {
 7         //Thread1 = new int[rn.i];
 8         Thread1 = rn.num;
 9     }
10     public void run()
11     {
12         for(int i=0; i<Thread1.length; i++)
13         {
14             for(int j=0; j<Thread1.length-i-1; j++)
15             {
16                 if(Thread1[j] > Thread1[j+1])
17                 {
18                     int mid = Thread1[j];
19                     Thread1[j] = Thread1[j+1];
20                     Thread1[j+1] = mid;
21                 }
22             }
23         }
24         for(int i=0; i<Thread1.length; i++)
25         {
26             System.out.println(Thread1[i]);
27         }
28         System.out.println("Thread1打印完成。");
29     }
30 }  
 1 import java.util.Arrays;
 2
 3 public class Thread2 implements Runnable {
 4
 5     private int Thread2[];
 6     Thread2(RandomNumber rn)
 7     {
 8        // Thread2 = new int[rn.num.length];
 9         Thread2 = rn.num;
10     }
11
12   public void run()
13   {
14       Arrays.sort(Thread2);
15       for (int i=0;i<Thread2.length;i++)
16       {
17           System.out.println(Thread2[i]);
18       }
19       System.out.println("Thread2打印完成");
20   }
21 }  
时间: 2024-10-01 04:22:35

多线程练习(java)的相关文章

多线程(三) java中线程的简单使用

============================================= 原文链接:多线程(三) java中线程的简单使用 转载请注明出处! ============================================= java中,启动线程通常是通过Thread或其子类通过调用start()方法启动. 常见使用线程有两种:实现Runnable接口和继承Thread.而继承Thread亦或使用TimerTask其底层依旧是实现了Runnabel接口.考虑到java的

java多线程学习--java.util.concurrent

CountDownLatch,api 文档:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes. 假设我们要打印1-100,最

Java学习笔记—多线程(java.util.concurrent并发包概括,转载)

一.描述线程的类:Runable和Thread都属于java.lang包 二.内置锁synchronized属于jvm关键字,内置条件队列操作接口Object.wait()/notify()/notifyAll()属于java.lang包 二.提供内存可见性和防止指令重排的volatile属于jvm关键字 四.而java.util.concurrent包(J.U.C)中包含的是java并发编程中有用的一些工具类,包括几个部分: 1.locks部分:包含在java.util.concurrent.

[转载] java多线程学习-java.util.concurrent详解(四) BlockingQueue

转载自http://janeky.iteye.com/blog/770671 --------------------------------------------------------------------------------- 7.BlockingQueue     “支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及存储元素时等待空间变得可用.“ 这里我们主要讨论BlockingQueue的最典型实现:LinkedBlockingQueue 和Arra

[转载] java多线程学习-java.util.concurrent详解(一) Latch/Barrier

转载自http://janeky.iteye.com/blog/769965 Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者编写高效.易维护.结构清晰的Java多线程程序.从这篇blog起,我将跟大家一起共同学习这些新的Java多线程构件 1. CountDownLatch     我们先来学习一下JDK1.5 API中关于这个类的详细介绍: “一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个

Java 并发和多线程(一) Java并发性和多线程介绍[转]

作者:Jakob Jenkov 译者:Simon-SZ  校对:方腾飞 http://tutorials.jenkov.com/java-concurrency/index.html 在过去单CPU时代,单任务在一个时间点只能执行单一程序.之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程.虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个CPU,并交由操作系统来完成多任务间对CPU的运行切换,以使得每个任务都有机会获得一定的时间片运行. 随着多任务对软件开发者带来的

归并排序 求逆序数 链表的归并排序 多线程归并排序 java

import java.util.Scanner; public class Main { private static int count=0; public static void mergesort(int a[],int low,int high) { if(low<high) { int mid=(low+high)>>1; mergesort(a,low,mid); mergesort(a,mid+1,high); merge(a,low,mid,high); } } pri

多线程编程——java

1.进程和线程 进程:一个计算机程序的运行实例,包含了需要执行的指令:有自己的独立地址空间,包含程序内容和数据:不同进程的地址空间是互相隔离的:进程拥有各种资源和状态信息,包括打开的文件.子进程和信号处理. 线程:表示程序的执行流程,是CPU调度执行的基本单位:线程有自己的程序计数器.寄存器.堆栈和帧.同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源. 2.多线程 多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立.线程又称为

【多线程】Java线程面试题 Top 50(转载)

Java线程面试题 Top 50 原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎加入Java小组.转载请参见文章末尾的要求. 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎.大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发.调试.优化经验,所以线程

【多线程】Java并发编程:并发容器之CopyOnWriteArrayList(转载)

原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略.从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet.CopyOnW