<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    姿姿霸霸~~!
    貴在堅持!
    posts - 106,  comments - 50,  trackbacks - 0

    先來個小總結(jié):

    yield()使當(dāng)前線程暫停。但設(shè)置了setPriority(Thread.MAX_PRIORITY);時,yield()不咋管用了。

    一般只需要重寫run()方法的話,實現(xiàn)runnalbe接口比較方便。

    如果在進程類里面需要訪問同一個變量的話,就實現(xiàn)接口。如果用繼承類的話,同一個變量就有幾份的拷貝。但是內(nèi)部類繼承類的結(jié)和繼承接口的效果一樣。

    啟動一個線程
    MyThread mt=new MyThread();
    new Thread(mt).start();

    好多東西都有時間片。時間片是個不確定的東西。

    當(dāng)調(diào)用wait(),notify()方法時,應(yīng)該保證他們是同一個對象sy也要同一個對象。synchronized 中 才能有wait(),notify()方法。

    synchronized(Object obj)與synchronized(this)的區(qū)別?!(誰能告訴我!!!!!)


    下面是生產(chǎn)者與消費者的例子,為了方便,幾個類直接寫在一起了。


    //new 生產(chǎn)者,消費者,隊列。并起用生產(chǎn)者,消費者的線程
    public class Test {

    ?public static void main(String[] args) {

    ??Queue q = new Queue();
    ??Producer p = new Producer(q);
    ??Consumer c = new Consumer(q);
    ??p.start();
    ??c.start();
    ?}
    }

    //生產(chǎn)者,每生產(chǎn)好一個東西后,就往隊列中放一個
    class Producer extends Thread {

    ?Queue q;

    ?Producer(Queue q) {
    ??this.q = q;
    ?}

    ?public void run() {
    ??for (int i = 0; i < 10; i++) {
    ???q.setValue(i);
    ???System.out.println("Producer put:" + i);
    ??}
    ?}
    }

    //消費者,每當(dāng)隊列中有東西通知時,就從隊列去拿
    class Consumer extends Thread {

    ?Queue q;

    ?Consumer(Queue q) {
    ??this.q = q;
    ?}

    ?public void run() {
    ??while (true) {
    ???System.out.println("Consumer get:" + q.getValue());
    ??}
    ?}
    }

    //隊列
    class Queue {

    ?int value;
    ?boolean flag = false;

    ?//生產(chǎn)者往這放它所生產(chǎn)的東西
    ?public synchronized void setValue(int i) {
    ??//當(dāng)生產(chǎn)好一個往隊列中放了后,放置一個標(biāo)志。發(fā)個通知,告訴說生產(chǎn)好了,并等待消費者來拿
    ??if (!flag) {
    ???value = i;
    ???flag = true;
    ???notify();
    ??}
    ??try {
    ???wait();
    ??} catch (InterruptedException e) {
    ???e.printStackTrace();
    ??}
    ?}

    ?//消費者從這獲取東西
    ?public synchronized int getValue() {
    ??//消費這先判斷隊列是否有東西了,有的話,就讓其他線程等待,自己取拿,拿好后設(shè)置一個標(biāo)志,發(fā)個通告告訴其他線程,我拿好了
    ??if (!flag) {
    ???try {
    ????wait();
    ???} catch (InterruptedException e) {
    ????e.printStackTrace();
    ???}
    ??}
    ??flag = false;
    ??notify();
    ??return value;
    ?}
    }

    posted on 2007-01-15 00:27 xrzp 閱讀(845) 評論(0)  編輯  收藏 所屬分類: JAVA

    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    好友的blog

    搜索

    •  

    積分與排名

    • 積分 - 117440
    • 排名 - 500

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 男女超爽视频免费播放| 成人性做爰aaa片免费看| 国产免费丝袜调教视频| 亚洲男人都懂得羞羞网站| 国产麻豆一精品一AV一免费 | 永久免费观看黄网站| 少妇亚洲免费精品| 日韩在线观看免费| 亚洲午夜日韩高清一区| 伊人久久综在合线亚洲2019| 99免费视频观看| 亚洲w码欧洲s码免费| 国产女高清在线看免费观看| 国产成人亚洲精品播放器下载| 又大又粗又爽a级毛片免费看| 一级毛片aa高清免费观看| 亚洲人成伊人成综合网久久久| 亚洲乱码一区av春药高潮| 57PAO成人国产永久免费视频| 国产亚洲国产bv网站在线| 国产福利免费观看| 永久免费精品影视网站| 亚洲AV无码国产丝袜在线观看| 国产成人va亚洲电影| 在线日韩日本国产亚洲| 最新亚洲人成网站在线观看| 久久ww精品w免费人成| 2020久久精品亚洲热综合一本 | 成人免费视频一区二区| 精品亚洲综合在线第一区| 人成电影网在线观看免费| 久久综合日韩亚洲精品色| 91在线视频免费看| 国产精品成人啪精品视频免费| 亚洲色欲或者高潮影院| 午夜男人一级毛片免费| 久久亚洲国产精品成人AV秋霞 | 久久国产精品免费观看| 国产精品亚洲专区在线观看 | 亚洲视频在线一区| 国产免费131美女视频|