javafor多线程
❶ java中如何实现多线程
{
publicMyMoreThread()
{
内super();
}
publicMyMoreThread(Stringname)
{
super(name);
}
publicvoidrun()
{
for(inti=0;i<10;i++)
{
System.out.println(super.getName()+":"+i);
}
}
}
publicclassThreadTest3
{
publicstaticvoidmain(String[]args)
{
MyMoreThreadthread1=newMyMoreThread("第容1个线程");
MyMoreThreadthread2=newMyMoreThread("第2个线程");
thread1.start();
thread2.start();
}
}
❷ java嵌套循环次数很多,怎么用多线程执行降低时间
将循环的数据分组,比如每组100条,分完之后开启线程,分别执行,线程可以用继承thread的方式,也可以实现runnable接口
❸ JAVA多线程里的循环耗时
这里你要改变下思维方式。虽然物理上是两个独立事件(开枪和子弹飞),但是计算机在绘图的时候,启示是一帧帧画上去的。所有的事件都是由连续帧绘制出来的。因此,只需要一个线程就可以了:
publicvoidrun(){
intt=0;
while(flag){
intbullet_time=t%600;
//fire
if(bullet_time==0){
//drawfireevent
}
else{
//drawbullets
switch(bullet_time){
case100:
//drawbullet1
break;
//drawbullet2
case200:
break;
//drawbullet3
case300:
break;
//drawbullet4
case400:
break;
//drawbullet5
case500:
break;
}
}
t+=100;
try{Thread.sleep(100);}catch(Exceptione){e.printStackTrace();}}}
❹ java—for循环里启动的线程要怎么理解
每次循环中都创建了一个新的线程对象,所以start启动了二十个不同的线程。另外,不是所有东西用多线程都能加速,切换线程的时候也是会有损耗的
❺ java多线程
。。。,你这样写 2个线程只会比一个线程耗时更多而不会少,因为你的2个线程是把同一件事情做了两遍,而不是把一件事情拆成了俩份来做。
你起两个线程,一个计算sum1 = for( i<Integer.MAX_VALUE/2)
一个计算 sum2 = for (Integer.MAX_VALUE/2<i<Integer.MAX_VALUE)
主线程 定义两个静态变量 flag1 =false; flag2=false;
sum1结束时 flag1=true; sum2结束时 flag2=true
if(flag1&&flag2)
sum = sum1+sum2
这样时间才会少,理论上运算时间是之前单线程的一半。当然你的计算程序要够复杂,就是5秒以上效果才会出来。
❻ java中怎样实现多线程
//简单的演示,四个人吃包子,各吃各的!
publicclassThreadTest{
publicstaticvoidmain(String[]args){
String[]arr={"张333","李----四","-----王五","赵六666"};
for(inti=0;i<4;i++){
newThread(newRunnable(){
inta=1;
publicvoidrun(){
while(a<100)
System.out.println(Thread.currentThread().getName()+"在吃包子,吃了"+(a++)+"个了");
}
},arr[i]){
}.start();
}
}
}
❼ Java线程池优化for循环
那么我们要做的就是把要做的事情开多线程里去处理,可以简单的实现如下
packagecom.wenxy.test...bank;
importjava.util.Iterator;
importjava.util.concurrent.Executor;
importjava.util.concurrent.Executors;
publicclassTestLoop{
publicstaticinti=0;
voiddoSomething(){
System.out.println(Thread.currentThread().getName()
+"isdoing。。。andi="+i);
i++;
}
publicstaticvoidmain(String[]args){
finalTestLooptestLoop=newTestLoop();
//创建一个线程池,用10个线程处理
Executorexecutor=Executors.newFixedThreadPool(10);
for(inti=0;i<100;i++){
executor.execute(newRunnable(){
@Override
publicvoidrun(){
testLoop.doSomething();
}
});
}
}
}
❽ java 多线程的例子
多线程实际上就是多个线程同时运行,至于那个先完成是不能确定的。
* @author Rollen-Holt 实现Runnable接口
* */
class hello implements Runnable {
public hello() {
}
public hello(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(name + "运行 " + i);
}
}
public static void main(String[] args) {
hello h1=new hello("线程A");
Thread demo= new Thread(h1);
hello h2=new hello("线程B");
Thread demo1=new Thread(h2);
demo.start();
demo1.start();
}
private String name;
}
可能运行结果:
❾ java for循环中创建线程池
首先要明确线程池的意思,就是线程预先创建好放在一个池里面,使用后不会销毁
要区分任务和线程池,任务可以不断添加,但是线程池里线程的个数是固定的,当任务数超过线程数后,后面的任务需要等待有空闲的线程才会执行
所以不断添加任务没有关系,如果池中有50个线程,你添加100个任务同一时间也只会执行50个任务,剩下的50个任务需要等待前面的任务执行完毕后继续执行
所以你的主线程原则上可以不断for,但是你总得有个结束点吧
❿ Java 多线程与for 语句如何结合使用
{
Stringparam=null;
publicTestThread(Stringparam){
this.param=param;
}
@Override
publicvoidrun(){
System.out.println(param);
}
publicstaticvoidmain(String[]args){
while(true){
newThread(newTestThread("测试")).start();
}
}
}
给你写了个简单的demo,就是把你需要的参数写在你的类里面,然后用构造注入就可以了