欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Java多線(xiàn)程-一個(gè)簡(jiǎn)單的線(xiàn)程,實(shí)現掛起和恢復的功能
主程式代碼:

public class MainApp {

    
public static void main(String[] args) {
        
        
try {
            MySprite dog 
= new MySprite("狗狗");
            MySprite cat 
= new MySprite("喵喵");
            MySprite pig 
= new MySprite("豬豬");
            
            System.out.println(
"--- start sprites");
            dog.start();
            cat.start();
            pig.start();
            Thread.sleep(
500);
            System.out.println(
"--- suspend dog");
            dog.suspend();
            System.out.println(
"--- main thread do something");
            Thread.sleep(
500);
            System.out.println(
"--- resume dog");
            dog.resume();
            Thread.sleep(
500);
            System.out.println(
"--- end dog");
            dog.stop();
            System.out.println(
"--- main thread do something");
            Thread.sleep(
500);
            System.out.println(
"--- end other sprites");
            cat.stop();
            pig.stop();
            Thread.sleep(
100);
            System.out.println(
"--- exit programe.");
        }
 catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

}


線(xiàn)程實(shí)現

public class MySprite implements Runnable {

    
/*
     * 線(xiàn)程用變量
     
*/

    
private boolean running = false;
    
private boolean waiting = false;
    
private Thread thread;
    
    
/*
     * Business 變量
     
*/

    
private String name;
    
    
public MySprite(String name) {
        
this.name = name;
        
this.thread = new Thread(this);
    }

    
    
/**
     * 啟動(dòng)線(xiàn)程
     
*/

    
public void start() {
        running 
= true;
        thread.start();
    }

    
    
/**
     * 掛起線(xiàn)程
     
*/

    
public void suspend() {
        
if (waiting) // 是掛起狀態(tài)則直接返回
            return;
        }

        
synchronized (this{
            
this.waiting = true;
        }

    }

    
    
/**
     * 恢復線(xiàn)程
     
*/

    
public void resume() {
        
if (!waiting) // 沒(méi)有掛起則直接返回
            return;
        }

        
synchronized (this{
            
this.waiting = false;
            
this.notifyAll();
        }

    }

    
    
/**
     * 停止線(xiàn)程
     
*/

    
public void stop() {
        
if (!running) // 沒(méi)有運行則直接返回
            return;
        }

        
synchronized (this{
            running 
= false;
        }

    }

    
    
public void run() {
        
for(;;) {
            
try {
                
// 線(xiàn)程掛起和退出處理
                synchronized (this{
                    
if (!running) {
                        
break;
                    }

                    
if (waiting) {
                        
this.wait();
                    }

                }


                
// 應該做的事情
                cry();
                
                
// 進(jìn)入等待狀態(tài)
                Thread.sleep(50);
            }
 catch (InterruptedException e) {
                e.printStackTrace();
            }

        }

    }

    
    
private void cry() {
        System.out.println(name 
+ ":woo!");
    }

}

可以結合UDP,TCP進(jìn)行網(wǎng)絡(luò )編程使用。在使用UDP時(shí),由于DatagramSocket在接收數據的時(shí)候需要等待,程序不能進(jìn)行停止的操作,所以要給datagramSocket加一個(gè)定時(shí)器,超時(shí)則進(jìn)行下一次接收的過(guò)程。我在jbuilder中已經(jīng)做好了一個(gè),以后放上來(lái)做詳細介紹。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Java建立簡(jiǎn)單的線(xiàn)程
死鎖問(wèn)題
Java并發(fā)編程
java中,如何安全的結束一個(gè)正在運行的線(xiàn)程?
java學(xué)習日記_線(xiàn)程
多線(xiàn)程編程——實(shí)戰篇(二)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久