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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 木易延 中级黑马   /  2016-2-18 19:32  /  998 人查看  /  6 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

创建一个类,类名为MyThiead,并实现Runnable接口,以及完成如下操作:
        1,创建一个main方法,并在main方法中使用for创建5个线程,并使用线程类的构造方法,输出“创建线程x(线程x为每个线程的标识或者名称)”
        2,在控制台打印并输出“线程x : 计数y”


6 个回复

倒序浏览

回帖奖励 +5

buzhiddaoaaaaaaaaaaaa
回复 使用道具 举报
什么题意啊?怎么读不明白,是线程每创建出一个的时候就打印“创建线程x”?大体做了一个,你看看符不符合题意,我没搞明白,具体到底干什么?
  1. class MyThread implements Runnable{
  2.        
  3.         private int num;
  4.         public void run()
  5.         {
  6.                 while(true)
  7.                 {
  8.                         //多线程操作了共享资源num,加同步
  9.                         synchronized(MyThread.class)
  10.                         {
  11.                                 try {
  12.                                         Thread.sleep(300);
  13.                                 } catch (InterruptedException e) {
  14.                                         // TODO Auto-generated catch block
  15.                                         e.printStackTrace();
  16.                                 }
  17.                                 if(num<10)
  18.                                         System.out.println(Thread.currentThread().getName()+":计数"+num++);
  19.                                 else
  20.                                         return;
  21.                         }
  22.                 }
  23.         }
  24.        
  25. }
  26. public class ReflectDemo1 {

  27.         public static void main(String[] args) {
  28.                 MyThread mt = new MyThread();
  29.                         for(int i = 0;i<5;i++)
  30.                         {
  31.                                
  32.                                 new Thread(mt,"线程"+i).start();
  33.                         }
  34.                
  35.         }

  36. }
复制代码
回复 使用道具 举报
学习学习
回复 使用道具 举报
wygsqsj 发表于 2016-2-18 20:12
什么题意啊?怎么读不明白,是线程每创建出一个的时候就打印“创建线程x”?大体做了一个,你看看符不符合 ...

请问为什么要加同步????
回复 使用道具 举报
heimagirls 发表于 2016-2-19 17:01
请问为什么要加同步????

不加同步的话,当num的值为9的时候,线程a判断if(num<10)之后还没打印,cpu切换到线程b,线程b判断num的值依旧是9,然后打印出来了,这时候线程a被切到之后,继续向下输出,num的值就等于10了,只要多个线程操作共享资源就得考虑同步问题。
回复 使用道具 举报
wygsqsj 发表于 2016-2-20 00:04
不加同步的话,当num的值为9的时候,线程a判断if(num

谢谢,懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马