top of page

2013.9.30

マルチスレッド管理について、いろいろ学んでいました。

少しまとめておきます。

1、有名なテキストをご紹介します。

java スレッドプログラミングというタイトルになっています。

http://www.amazon.co.jp/exec/obidos/ASIN/4881359185/ref=sr_aps_b_6/249-8921390-5557163

 

そもそも、 スレッドプログラミングは並列処理分野の技術の中の一つです。

2はスレッドは一体なんでしょうか。OS基礎と同じように考え方で、複数のプロセスが同時に走るように見えることは重要です。

横取り(プリエンプション)(プロセスの実行中に、突然割り込まれて実行が停止すること)

アトミックな操作(横取りが起きないことが保証されている操作)

3extends  Thread 跟  interface Runnable[戻り値がない](Callable「戻り値がある」)方法。

書き方は省略する

賢い方法、スレッドを待機させ、必要に応じてスレッドを取り出してタスクを割り当てる方法があります。

「スレッドプール」です。

 

newFixThreadPool

newCachedThreadPool

newScheduledThreadPool

newSingleThreadExecutor

 

4同期 synchronized(ブロックをかけると同じ感じ) 

synchronized文とsynchronizedメソッドの違い

文のほうは

public static void increment(){

 

// synchronized (this)

synchronized (MyClass.class)

       count++;

}

}

コレクション同期処理

List<String> slist=Collections.synchronized(list);

内部処理するので、外部処理は不要です。

5 volatile 修飾子をつけたら、フィールド変数の値の変更は本物の値に書き戻されることが保証される。また、volatile 修飾子のフィールド値の読み込みは本物の値を読むことを保証する。

Lockクラスの使用方

Lock lock;

lock.lock();

lock.unlock;

 

6 通知機能

wait();

*notify(\(\()

*notifyAll();

join();

sleep();(try catch)

 

7 デッドロックの予防

2つのスレッドがお互いにロックうを待ち合う現象を「デッドロック」と呼ぶ。

参考パーフェクト java 

http://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88Java-PERFECT-SERIES/dp/4774139904/ref=sr_1_1?ie=UTF8&qid=1380536769&sr=8-1&keywords=%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88+java

382ページ

Mac osのshell Scriptを用いて、jarfileを実行する


まず、mac下で謎のjavaのPATH

 

http://d.hatena.ne.jp/aoe-tk/20120603/1338738083

 

このブロクを参考してください。

PATH=/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/

 

ここに設定されている

次、vi shell01.sh

 

Shell Script  プログラミング書く習慣とは

1どんなshellを使っています

2プログラムの内容と提供する機能の概要

3バージョン情報

4作者と連絡先

5歴史記録と修正時間の更新

#!/bin/bash

# Program:

#       This program run jar file on your computer.

# History:

# 2013/09/25 Sun First release

#実行行列


java -version

java -jar ~/Desktop/test.jar

 

最後に、 [Esc]

                [ :wq]

 

sh shell01.shで実行する。

エージェント

​​

相互作用性(Interaction)

協調性(Coordination)

知性(Intelligence)

適応性(Adaptability)

代行性(Agency)

自律性(Autonomy)

bottom of page