2 u011094068 u011094068 于 2013.11.04 21:48 提问

关于Java与android线程多次start()问题?

请教如题, 晚上吃完饭没事想到个问题,测试了一下也不明不白的。。望解答。
我在android项目里面写了一个按钮,按钮里面开启一个简单的线程 如下。
Thread thread = new Thread(runnable);
thread.start();
线程里面也不需要做什么事情,就打印了一些数据,我每按一次就打印一次。想请教一下,我每按一次是开启的新线程,多个线程同时工作呢,还是在原线程里面增加了队列依次进行工作? 自己测试和网上找了一下也还没怎么明白。求高手~

3个回答

su1216
su1216   2013.11.05 10:00
已采纳

同时工作。
每次都会new一个新的线程,执行一次start

当然,先开启的线程很可能已经执行完毕了,如果你只是打印一些log

a63850553
a63850553   2013.11.11 14:22

当然是新开一个线程。

a454569399
a454569399   2013.11.27 14:32

关键你线程里面的处理太简单了,瞬间就完成了,你这么测试没什么感觉的,如果多个线程,建议用线程池

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
线程多次调用start方法,引发的异常
简单的线程使用,大家应该都会使用,下面的这个问题,不知道大家有没有注意过。 public class Test146 { public static void main(String[] args) { MyThread11 m = new MyThread11(); for(int i = 0;i<5;i++) { m....
android线程start()、interrupt()之重复使用
这次我遇到的问题是我想开启一个线程每隔100ms监听一次scrollview滑动高度,start()后线程run,监听30次后停止线程,调用interrupt()方法中断线程,当再滑动时继续start()线程,30次后interrupt(),问题是如果用户连续滑动,则是开启了多个
线程对象不能多次调用start函数开辟线程
同一个线程对象是不能多次调用start函数开辟线程 (例)以下代码的12行会报错,虽然12行代码执行时第一次开辟线程运行的run函数已经结束 代码: 1)  public class MyThread extends Thread { 2)     @Override 3)     public void run() { 4)        for (int i = 0;
QThread运行多次start()
QThread thread; thread.start(); thread.start(); thread.start(); A)QThread类,类似上述多次直接调用start()函数,只会运行一次,不会运行多次。 B)想要多次运行,需等待wait()线程运行完成,然后再调用start() C)  QThread对象,每次调用start函数,线程Id会变化,每次产生
Thread 和Runnable的区别/不可多次start一个线程
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。 下面看例子: package org.thread.demo;  class MyThread extends Th
解决java Android 中同一个线程多次运行问题
在java中同一个线程只能被start()一次,当第二次start()就会报异常。但是我们的软件需求常常需要同一个线程多执行同一个方法。为此可以使用notify(),wait()方法来达到我们想要的效果。先看代码public class ThreadTest extends Thread { private static boolean flag = false; public Thr
java 线程run()和start()区别
java线程启动线程有两种方式:Thread、Runnable两种方式在Java线程当中,线程通常都有五种状态,新建(创建)、就绪、运行、阻塞和死亡。  1、新建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。  2、就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之...
从Thread.start()方法看Thread源码,多次start一个线程会怎么样
这篇文章作为Thread类源码剖析的补充,从一个侧面来看Thread源码。也解答了面试高频问题:“多次start一个线程会怎么样?” 答案是:java.lang.IllegalThreadStateException   线程状态非法异常   继承关系是:--->extends IllegalArgumentException--->extends RuntimeException一个运行时
关于线程start()方法重写
<br />先看以下两个代码:<br />package thread;<br />public class StartThread implements Runnable{<br />public static void main(String[] args) {<br /> StartThread s=new StartThread();<br /> Thread t=new Thread(s);<br /> t.start();<br />}<br />public void start(){<br
Java中启动线程start和run方法
一、区别Java中启动线程有两种方法,继承Thread类和实现Runnable接口,由于Java无法实现多重继承,所以一般通过实现Runnable接口来创建线程。但是无论哪种方法都可以通过start()和run()方法来启动线程,下面就来介绍一下他们的区别。start方法:通过该方法启动线程的同时也创建了一个线程,真正实现了多线程。无需等待run()方法中的代码执行完毕,就可以接着执行下面的代码。此