class Print implements Runnable{ private String hello="welcome!"; @Override public void run(){ for(int i=0;i<hello.length();i++){ System.out.println(Thread.currentThread().getName()+hello.charAt(i)); try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } } } } public class Welcome { public static void main(String[] args){ // TODO Auto-generated method stub Print print=new Print(); Thread pri0 =new Thread(print); Thread pri1 =new Thread(print); pri0.setName("Threade:"); pri1.setName("Thread1:"); pri0.start(); pri1.start(); } }说明运行结果原因和创建线程的方法
时间: 2024-03-08 10:46:50 浏览: 14
这段代码创建了一个实现了 Runnable 接口的 Print 类,该类的 run() 方法每隔一秒钟打印出字符串 "welcome!" 中的一个字符,同时线程名也会被打印出来。在 main() 方法中,创建了两个线程,分别命名为 "Thread0:" 和 "Thread1:",并启动这两个线程。由于这两个线程共享同一个 Print 对象,因此它们在运行时会交替输出字符,最终输出结果类似于以下内容:
```
Thread0:w
Thread1:e
Thread0:l
Thread1:c
Thread0:o
Thread1:m
Thread0:e
Thread1:e
Thread0:!
Thread1:!
```
该代码使用了实现 Runnable 接口的方式来创建线程。具体来说,首先定义了一个实现了 Runnable 接口的 Print 类,该类的 run() 方法定义了线程执行的具体任务。然后在 main() 方法中,创建了两个 Thread 对象,分别将 Print 对象作为参数传递给它们,表示这两个线程都要执行 Print 类中的 run() 方法。最后调用 start() 方法启动这两个线程。由于每个线程都有自己的线程栈,因此它们在执行任务时不会相互干扰。
相关问题
class Print implements Runnable{ private String hello="welcome!"; @Override public void run(){ for(int i=0;i<hello.length();i++){ System.out.println(Thread.currentThread().getName()+hello.charAt(i)); try{ Thread.sleep(1000); }catch (InterruptedException e){ e.printStackTrace(); } } } } public class Welcome { public static void main(String[] args){ // TODO Auto-generated method stub Print print=new Print(); Thread pri0 =new Thread(print); pri0.setName("Threade:"); pri0.start(); } }说明运行结果原因及创建线程的方法
这段代码创建了一个实现了 Runnable 接口的 Print 类,该类的 run() 方法每隔一秒钟打印出字符串 "welcome!" 中的一个字符,同时线程名也会被打印出来。在 main() 方法中,创建了一个线程,将 Print 对象作为参数传递给它,并命名为 "Thread0:",然后启动这个线程。由于只有一个线程在运行,因此输出结果只会包含 "welcome!" 这个字符串中的每个字符以及线程名 "Thread0:",最终输出结果类似于以下内容:
```
Thread0:w
Thread0:e
Thread0:l
Thread0:c
Thread0:o
Thread0:m
Thread0:e
Thread0:!
```
该代码使用了实现 Runnable 接口的方式来创建线程。具体来说,首先定义了一个实现了 Runnable 接口的 Print 类,该类的 run() 方法定义了线程执行的具体任务。然后在 main() 方法中,创建了一个 Thread 对象,将 Print 对象作为参数传递给它,表示这个线程要执行 Print 类中的 run() 方法。最后调用 start() 方法启动这个线程。由于只有一个线程在运行,因此它会一次输出完整的 "welcome!" 字符串,而且输出的每个字符前面都会有线程名 "Thread0:"。
private class ViewPageTask implements Runnable{ @Override public void run() { currentItem = (currentItem + 1) % imageIds.length; mHandler.sendEmptyMessage(0); } }
这是一个内部类ViewPageTask,实现了Runnable接口,用于更新ViewPager控件的显示页面。具体来说,它会周期性地(每隔2秒)更新currentItem变量的值,从而实现循环滑动ViewPager控件的效果。每次更新currentItem变量的值后,它会通过mHandler发送一个空消息,通知主线程更新ViewPager控件的显示页面。这个内部类与外部类之间可以共享外部类的成员变量和方法,更加灵活和方便。