Java线程怎样使用? java 如何使用线程?

JAVA\u4e2d\u7ebf\u7a0b\u600e\u4e48\u4f7f\u7528\u554a

\u6df1\u5165\u4e86\u89e3\u7ebf\u7a0b\u6c60\u7684\u4f5c\u7528\u4ee5\u53ca\u91cd\u8981\u6027


\u8fd9\uff0c\u7a0b\u5e8f\u4e00\u822c\u662f\u6309\u9700\u6c42\u505a\u7684\uff0c\u6ca1\u6709\u9700\u6c42\uff0c\u5c31\u6ca1\u610f\u4e49\u3002\u3002\u3002\u3002\u3002\u8bf7\u53c2\u8003\u591a\u7ebf\u7a0b

多进程是指操作系统能同时运行多个任务(程序),多线程是指在同一程序中有多个顺序流在执行。

在java中创建一个线程有两种方法: 

package com.thread;

public class ThreadTest1 {
    public static void main(String[] args) {
        Runnable1 r = new Runnable1();
        //r.run();并不是线程开启,而是简单的方法调用
        Thread t = new Thread(r);//创建线程
        //t.run(); //如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
        t.start(); //线程开启
        for (int i = 0; i < 100; i++) {
            System.out.println("main:"+i);
        }
    }
}
class Runnable1 implements Runnable{
    public void run() {
        for (int i = 0; i < 100; i++) {
            System.out.println("Thread-----:"+i);
        }
    }
}


 Thread线程类,该类有一个共有的无返回值不带参数的run方法。

 

可以用子类继承Thread类然后重写run方法。

class T extends Thread
{
public void run()
{
while(true)
{
System.out.println("xx"); 
}   
}   
}

使用是声明改自定义类对象,调用start方法启动线程。

Thread t=new T();
t.strat();

线程启动执行类中run方法中预制的代码。

也可以通过实现线程接口Runnable来创建线程

Thread t=new Thread(new Runnable{
public void run()
{
//代码 
}
});
t.start();


// 1.继承Thread类,重写Run方法
class MyThread1 extends Thread {
public void run() {
// 你要执行的操作
}
}
// 2.实现Runnable接口,实现Run方法
class MyThread2 implements Runnable {
public void run() {
// 你要执行的操作
}
}
// 调用你创建的线程
class Caller {
public static void main(String[] args) {
MyThread1 mt1 = new MyThread1(); // 或Thread mt1 = new MyThread1();
Thread t1 = new Thread(mt1);
t1.start();
MyThread2 mt2 = new MyThread2(); // 或Runnable mt2 = new MyThread2();
Thread t2 = new Thread(mt2);
t2.start();
}
}

  • 鑳借В閲婁竴涓java鐨勭嚎绋鐨浣跨敤
    绛旓細锛堜竴锛夊畾涔変竴涓绾跨▼绫伙紝瀹冪户鎵跨嚎绋嬬被Thread骞堕噸鍐欏叾涓殑鏂规硶 run锛堬級锛岃繖鏃跺湪鍒濆鍖栬繖涓被鐨勫疄渚嬫椂锛岀洰鏍噒arget鍙负null锛岃〃绀虹敱杩欎釜瀹炰緥瀵规潵鎵ц绾跨▼浣撱傜敱浜Java鍙敮鎸佸崟閲嶇户鎵匡紝鐢ㄨ繖绉嶆柟娉曞畾涔夌殑绫讳笉鑳藉啀缁ф壙鍏跺畠鐖剁被銆傦紙浜岋級鎻愪緵涓涓疄鐜版帴鍙unnable鐨勭被浣滀负涓涓嚎绋嬬殑鐩爣瀵硅薄锛屽湪鍒濆鍖栦竴涓猅hread...
  • java鎬庝箞瀹炵幇绾跨▼
    绛旓細2銆佸疄鐜癛unnable鎺ュ彛鍒涘缓绾跨▼ 濡傛灉鑷繁鐨勭被宸茬粡extends鍙︿竴涓被锛屽氨鏃犳硶鐩存帴extends Thread锛屾鏃讹紝鍙互瀹炵幇涓涓猂unnable鎺ュ彛銆3銆佸疄鐜癈allable鎺ュ彛閫氳繃FutureTask鍖呰鍣ㄦ潵鍒涘缓Thread绾跨▼ 4銆浣跨敤ExecutorService銆丆allable銆丗uture瀹炵幇鏈夎繑鍥炵粨鏋滅殑绾跨▼ ExecutorService銆丆allable銆丗uture涓変釜鎺ュ彛瀹為檯涓婇兘鏄睘浜嶦xecutor...
  • java澶绾跨▼鏈夊嚑绉嶅疄鐜版柟娉,閮芥槸浠涔?鍚屾鏈夊嚑绉嶅疄鐜版柟娉,閮芥槸浠涔?
    绛旓細java涓澶绾跨▼鐨勫疄鐜版柟娉曟湁涓ょ锛1.鐩存帴缁ф壙thread绫伙紱2.瀹炵幇runnable鎺ュ彛锛涘悓姝ョ殑瀹炵幇鏂规硶鏈変簲绉嶏細1.鍚屾鏂规硶锛2.鍚屾浠g爜鍧楋紱3.浣跨敤鐗规畩鍩熷彉閲(volatile)瀹炵幇绾跨▼鍚屾锛4.浣跨敤閲嶅叆閿佸疄鐜扮嚎绋嬪悓姝ワ紱5.浣跨敤灞閮ㄥ彉閲忓疄鐜扮嚎绋嬪悓姝 銆傚叾涓绾跨▼瀹炵幇杩囩▼涓渶娉ㄦ剰閲嶅啓鎴栬呰鐩杛un()鏂规硶锛岃屽浜庡悓姝ョ殑瀹炵幇鏂规硶涓...
  • java鏈夊嚑绉嶅疄鐜绾跨▼鐨勬柟寮?
    绛旓細鍒涘缓:class xx extends Thread{ public void run(){Thread.sleep(1000)//绾跨▼浼戠湢1000姣,sleep浣跨嚎绋嬭繘鍏lock鐘舵,骞堕噴鏀捐祫婧恾} 寮鍚嚎绋:瀵硅薄.start()//鍚姩绾跨▼,run鍑芥暟杩愯 (2)瀹炵幇Runnable鎺ュ彛,閲嶅啓run鍑芥暟 寮鍚嚎绋:Thread t = new Thread(瀵硅薄)//鍒涘缓绾跨▼瀵硅薄t.start() (3)瀹炵幇Callable鎺ュ彛,閲嶅啓...
  • java绾跨▼閲岄潰start鏂规硶鏄濡備綍杩愯鐨?
    绛旓細浣胯绾跨▼寮濮嬫墽琛岋紱Java 铏氭嫙鏈鸿皟鐢ㄨ绾跨▼鐨 run 鏂规硶銆傜粨鏋滄槸涓や釜绾跨▼骞跺彂鍦拌繍琛岋紱褰撳墠绾跨▼锛堜粠璋冪敤杩斿洖缁 start 鏂规硶锛夊拰鍙︿竴涓嚎绋嬶紙鎵ц鍏 run 鏂规硶锛夈傝櫄鎷熸満锛圴irtual Machine锛夋寚閫氳繃杞欢妯℃嫙鐨勫叿鏈夊畬鏁寸‖浠剁郴缁熷姛鑳界殑銆佽繍琛屽湪涓涓畬鍏ㄩ殧绂荤幆澧冧腑鐨勫畬鏁磋绠楁満绯荤粺銆傝櫄鎷熺郴缁熼氳繃鐢熸垚鐜版湁鎿嶄綔绯荤粺鐨...
  • java 澶绾跨▼鏄粈涔?涓涓鐞嗗櫒鎬庝箞鍚屾椂澶勭悊澶氫釜绋嬪簭
    绛旓細绾跨▼鏄繘绋嬩腑鐨勪竴涓疄浣擄紝鏄绯荤粺鐙珛璋冨害鍜屽垎娲剧殑鍩烘湰鍗曚綅銆傜嚎绋嬭嚜宸卞熀鏈笂涓嶆嫢鏈夌郴缁熻祫婧愶紝浣嗗畠鍙互涓庡悓灞炰竴涓繘绋嬬殑鍏朵粬绾跨▼鍏变韩杩涚▼鎵鎷ユ湁鐨勫叏閮ㄨ祫婧愩傛墍浠ョ嚎绋嬫槸杞婚噺绾х殑浠诲姟锛屽畠浠箣闂寸殑閫氫俊鍜岃浆鎹㈠彧闇瑕佽緝灏忕殑绯荤粺寮閿銆侸ava鏀寔澶氱嚎绋嬬紪绋嬶紝鍥犳鐢↗ava缂栧啓鐨勫簲鐢ㄧ▼搴忓彲浠ュ悓鏃舵墽琛屽涓换鍔°Java鐨澶...
  • java 涓娇鐢ㄧ嚎绋鐨勬柟娉曞埌搴曟湁鍝簺?
    绛旓細閮芥槸閫氳繃new Thread().start()寮鍚绾跨▼锛屼竴鑸湁涓ょ鏂瑰紡锛1鏄户鎵胯嚜Thread绫伙紝2鏄疄鐜癛unnable鎺ュ彛锛岀浜岀鏂瑰紡鏇村姞鐏垫椿锛Java涓嶆敮鎸佸缁ф壙锛屼絾鏄敮鎸佸瀹炵幇銆傛眰閲囩撼
  • java涓浣鍚姩涓涓柊鐨绾跨▼
    绛旓細瑕嗙洊A绫籖unnable鎺ュ彛涓殑run鏂规硶銆3锛夛細鎴戜滑缂栧啓闇瑕佸湪run鏂规硶涓墽琛岀殑鎿嶄綔锛氬湪run鏂规硶涓紝绾跨▼鎵ц銆4锛夛細鍦╩ain鏂规硶锛堢嚎绋嬶級涓紝鍒涘缓涓涓嚎绋嬪璞″苟鍚姩绾跨▼銆(1)鍒涘缓绾跨▼绫诲璞:Thread t = new Thread(new A());(2)璋冪敤绾跨▼瀵硅薄鐨剆tart鏂规硶:t.start();浠g爜瀹炰緥锛氭柟娉3锛氱洿鎺ュ湪鍑芥暟浣浣跨敤 ...
  • java绾跨▼姹(涓) 绠杩扮嚎绋嬫睜鐨勫嚑绉浣跨敤鏂瑰紡
    绛旓細棣栧厛璇存槑涓java绾跨▼鏄濡備綍瀹炵幇绾跨▼閲嶇敤鐨 1. 绾跨▼鎵ц瀹屼竴涓猂unnable鐨剅un()鏂规硶鍚庯紝涓嶄細琚潃姝 2. 褰撶嚎绋嬭閲嶇敤鏃讹紝杩欎釜绾跨▼浼氳繘鍏ユ柊Runnable瀵硅薄鐨剅un()鏂规硶12 java绾跨▼姹犵敱Executors鎻愪緵鐨勫嚑绉嶉潤鎬佹柟娉曞垱寤虹嚎绋嬫睜銆備笅闈㈤氳繃浠g爜鐗囨绠鍗曚粙缁嶄笅绾跨▼姹犵殑鍑犵瀹炵幇鏂瑰紡銆傚悗缁細閽堝姣忎釜瀹炵幇鏂瑰紡鍋氳缁嗙殑璇存槑...
  • Java澶绾跨▼鍒濆鑰呮寚鍗(3):浣跨敤Runnable鎺ュ彛鍒涘缓绾跨▼
    绛旓細涓婁竴绡 Java澶绾跨▼鍒濆鑰呮寚鍗楋紙 锛 鐢═hread绫诲垱寤虹嚎绋 瀹炵幇Runnable鎺ュ彛鐨勭被蹇呴』浣跨敤Thread绫荤殑瀹炰緥鎵嶈兘鍒涘缓绾跨▼ 閫氳繃Runnable鎺ュ彛鍒涘缓绾跨▼鍒嗕负涓ゆ 灏嗗疄鐜癛unnable鎺ュ彛鐨勭被瀹炰緥鍖 寤虹珛涓涓猅hread瀵硅薄 骞跺皢绗竴姝ュ疄渚嬪寲鍚庣殑瀵硅薄浣滀负鍙傛暟浼犲叆Thread绫荤殑鏋勯犳柟娉 鏈鍚庨氳繃Thread绫荤殑start鏂规硶寤虹珛绾跨▼ 涓嬮潰鐨勪唬鐮...
  • 扩展阅读:java线程池配置参数 ... runnable实现多线程 ... java创建线程的四种方式 ... java多线程面试题 ... 在java中怎样创建一个线程 ... java线程写法 ... java线程池的七个参数 ... java开启新线程 ... java如何正确使用线程池 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网