A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhucong1 中级黑马   /  2016-12-5 23:17  /  2175 人查看  /  5 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

        定义一个数组String str[] = {"世界杯", "亚洲杯", "欧洲杯", "美洲杯", "奥布莱恩杯"};
        创建两个线程名称分别为"恒大","鲁能" . 随机从str数组中取出元素与线程名称进行组合,在控制台
        输出10次.(输出格式为:"当前线程名称" + "捧起了" + str中的元素)?


5 个回复

倒序浏览
我不会楼主教我
回复 使用道具 举报
[Java] 纯文本查看 复制代码
package com.exercise.ss;

import java.util.Random;

public class Test7 {

	/**
	 * @param args
	 *
	 */
	public static void main(String[] args) {
		myRunnable mr = new myRunnable();
		Thread th1 = new Thread(mr);
		Thread th2 = new Thread(mr);
		th1.setName("恒大");
		th2.setName("鲁能");
		th1.start();
		th2.start();
	}

}
class myRunnable implements Runnable{
	private String str[] ={"世界杯" , "亚洲杯" ,"欧洲杯" , "美洲杯" , "奥布莱恩杯"};
	private int num = 1;
	private Random r = new Random();
	@Override
	public void run() {
			while(num <= 10){
				synchronized (this) {
					int i = r.nextInt(5);
					System.out.println(Thread.currentThread().getName() + "捧起了" + str[i]);
					num++;
				}
		}
		
	}
	
}

回复 使用道具 举报
miaoyi 发表于 2016-12-13 12:19
[mw_shl_code=java,true]package com.exercise.ss;

import java.util.Random;

可以,给你点个赞
回复 使用道具 举报
回复 使用道具 举报
本帖最后由 lvshen9 于 2017-2-18 14:02 编辑

import java.util.Random;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class Test2_1 {
        public static void main(String[] args) {
               final String str[] = {"世界杯", "亚洲杯", "欧洲杯", "美洲杯", "奥布莱恩杯"};  
                final Test2_1 test=new Test2_1();
                Thread t1=new Thread(){
                        public void run(){
                                test.myRun(str);
                        }
                };
                Thread t2=new Thread(){
                        public void run(){
                                test.myRun(str);
                        }
                };              
                t1.setName("恒大");
                t2.setName("鲁能");              
                t1.start();
                t2.start();
        }
   
        private Random r=new Random();
        private Lock lock=new ReentrantLock();
     public void myRun(String[] str){
                for(int num=0;num<10;num++){
                        
                        lock.lock();
                        try {
                                int i=r.nextInt(5);
                                System.out.println(Thread.currentThread().getName()+"捧起了"+str);
                                
                        } catch (Exception e) {
                                // TODO: handle exception
                        }finally{
                        lock.unlock();
                        }
                }
               
        }
}[/mw_shl_code]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马