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,就是把你需要的參數寫在你的類裡面,然後用構造注入就可以了