Programming-C-9.key

Similar documents
Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

K227 Java 2

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

JavaプログラミングⅠ

text_10.dvi

オブジェクト指向プログラミング・同演習 5月21日演習課題

JavaプログラミングⅠ

Microsoft PowerPoint - prog09.ppt

問題1 以下に示すプログラムは、次の処理をするプログラムである

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

r1.dvi

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft PowerPoint - prog09.ppt

JavaプログラミングⅠ

2

プログラムの基本構成

問題1 以下に示すプログラムは、次の処理をするプログラムである

プログラミングA

r8.dvi

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

例外処理とファイル入出力

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

Prog2_9th

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

I java A


9.3 同期 共有データへの読み書きの同期 複数のスレッドから共有データを読み書きするときに発生する問題について 一つのフィールドに対して複数のスレッドが同時にアクセスする可能性がある場合 その順番によっては整合性が保てなくなる可能性があるので スレッドの制御フローが独立していては困ることがある 次

マークアップ言語

** 平成 16 年度 FE 午後問題 Java** 示現塾プロジェクトマネージャ テクニカルエンジニア ( ネットワーク ) など各種セミナーを開催中!! 開催日 受講料 カリキュラム等 詳しくは 今すぐアクセス!! 平成 16

PowerPoint Presentation

Prog2_10th

1 Java Java GUI , 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3

Microsoft PowerPoint - prog13.ppt

Microsoft PowerPoint - prog13.ppt

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Prog1_10th

JAVA H13 OISA JAVA 1

226

2

II Java :30 12:00 I. I IV II. III. IV. ( a d) V. : this==null, T == N A ActionListener C class D actionperformed G getsource I implements K

2

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

Prog1_11th

メソッドのまとめ

10K pdf

Thread

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

( ) p.1 x y y = ( x ) 1 γ γ = filtergamma.java import java.applet.*; public class filtergamma extends Applet{ Image img; Image new_img; publi

新・明解Java入門

PowerPoint プレゼンテーション


JavaプログラミングⅠ

プログラミング入門1

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

Prog1_15th

untitled

ガイダンス

Java知識テスト問題

リファレンス,配列 例外処理

GEC-Java

データ構造とアルゴリズム論

JavaプログラミングⅠ

2

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

JavaプログラミングⅠ

r3.dvi

ガイダンス

デジタル表現論・第6回

データ構造とアルゴリズム論

プログラミング入門1

例外(exception)とは何か


問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

< F2D834F838C A815B A CC>

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

< F2D B838A835882CC8CF68EAE2E6A7464>

r2.dvi

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

PowerPoint プレゼンテーション

PowerPoint Presentation

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

Java演習(4) -- 変数と型 --

ALG ppt

< F2D825282CC947B909482CC A815B83682E6A>

untitled

try catch Exception Java try catch try { } catch ( Exception e ) { } e 16-1 try catch 0 try { int x = 0; int y = 10 / x; } catch ( Exception e ) { Sys

2

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

参考 - メインスレッドは JVM によって自動的に起動されるため 起動するコードを書く必要 はありません 今まで例題 演習で作成してきたプログラムは全てメインメソッドにて 動作している シングルスレッドです マルチスレッドマルチスレッドとは名前のとおり複数のスレッドと言う意味です マルチスレッドは

JavaプログラミングⅠ

2

データ構造とアルゴリズム論

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D82B682E182F182AF82F12E6A7464>

プログラミング入門1

Transcription:

プログラミングC 第9回 例外 スレッド 白石路雄 <shira@is.sci.toho-u.ac.jp>

2

finally try{ ( 例外が発生するかもしれない処理 ) catch(exception のクラス名 e){ ( 例外が発生した時の処理 ) finally{ ( 例外の発生の有無に関わらず 必ず行う処理 ) 3

Integer.parseInt() NumberFormatException 4

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readline(); int value = Integer.parseInt(str); Exception in thread "main" java.lang.numberformatexception: For input string: "3.5" at java.lang.numberformatexception.forinputstring(numberformatexception.java:65) at java.lang.integer.parseint(integer.java:492) at java.lang.integer.parseint(integer.java:527) at NumberFormatExceptionTest.main(NumberFormatExceptionTest.java:10) 5

NumberFormatException BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readline(); try{ int value = Integer.parseInt(str); catch(numberformatexception e){ System.out.println("Error!"); 6

public class KeyboardReader{ public int readinteger(){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readline(); int value = 0; try{ value = Integer.parseInt(str); catch(numberformatexception e){ System.out.println("Error!"); return value; 7

String readline IOException public class KeyboardReader{ public int readinteger(){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readline(); int value = 0; try{ value = Integer.parseInt(str); catch(numberformatexception e){ System.out.println("Error!"); return value; 8

try-catch-finally throws 9

public class KeyboardReader{ public int readinteger(){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int value = 0; try{ String str = br.readline(); value = Integer.parseInt(str); catch(numberformatexception e){ System.out.println("Error!"); catch(ioexception e){ System.out.println("Error!"); return value; 10

public class KeyboardReader{ public int readinteger() throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readline(); int value = 0; try{ value = Integer.parseInt(str); catch(numberformatexception e){ System.out.println("Error!"); return value; 11

Exception throw 12

13

Thread Runnable 14

Runnable public void run() public class Life implements Runnable{ public void run(){ String[] s = {"Eat", "Play", "Nap"; for(int i=0; i<6; i++){ try{ System.out.println("Life: " + s[i%3]); Thread.sleep(800); catch(interruptedexception e){ 15

Runnable Thread Thread start() 16

public class Main{ public static void main(string[] args){ Life l = new Life(); Thread t = new Thread(l); t.start(); for(int i=0; i<8; i++){ try{ System.out.println("Main: Work"); Thread.sleep(600); catch(interruptedexception e){ 17

Main: Work Life: Eat Main: Work Life: Play Main: Work Life: Nap Main: Work Life: Eat Main: Work Main: Work Life: Play Main: Work Life: Nap Main: Work 18

join() 19

join() public class Main{ public static void main(string[] args){ Life l = new Life(); Thread t = new Thread(l); t.start(); for(int i=0; i<8; i++){ try{ if(i==4) t.join(); System.out.println("Main: Work"); Thread.sleep(600); catch(interruptedexception e){ 20

Main: Work Life: Eat Main: Work Life: Play Main: Work Life: Nap Main: Work Life: Eat Life: Play Life: Nap Main: Work Main: Work Main: Work Main: Work 21

consumecard() public class RareCardServer{ public int count = 100; public void consumecard(){ int currrentcount = count; // データベースへの接続などにかかる時間を // シミュレートするため 100 ミリ秒停止 try{thread.sleep(100); catch(interruptedexception e){ count = currentcount - 1; 22

public class RareCardConsumer implements Runnable{ private RareCardServer server; public RareCardConsumer(RareCardServer server){ this.server = server; public void run(){ // 50 枚適当に寝ながら使う for(int i=0; i<50; i++){ server.consumecard(); try{thread.sleep((int)(math.random()*100)); catch(intteruptedexception e){ System.out.println("50 枚つかったぜー "); 23

RareCardConsumer public class RareCardTest{ public static void main(string[] args){ RareCardServer s = new RareCardServer(); Thread t1 = new Thread(new RareCardConsumer(s)); Thread t2 = new Thread(new RareCardConsumer(s)); t1.start(); t2.start(); try{ t1.join(); t2.join(); catch(intteruptedexception e){ System.out.println("Server に残ったカードの枚数 :"+s.count); 24

50 枚つかったぜー 50 枚つかったぜー Server に残ったカードの枚数 :47 25

consumecard() count currentcount consumecard() count currentcount int currrentcount = count; try{thread.sleep(100); catch(interruptedexception e){ count = currentcount - 1; 26

count count (;_;) int currrentcount = count; try{thread.sleep(100); catch(interruptedexception e){ count = currentcount - 1; 27

synchronized public class RareCardServer{ public int count = 100; public synchronized void consumecard(){ int currrentcount = count; // データベースへの接続などにかかる時間を // シミュレートするため 100 ミリ秒停止 try{thread.sleep(100); catch(interruptedexception e){ count = currentcount - 1; 28

google 29

ExceptionTest.java exit 3.2 exit2 exit 30

FileTest.java FileWatchThread 31

test.txt test.txt 監視するファイル名を指定してください > test.txt ファイルをチェックしています 最初のサイズは 3 バイトです ファイルが更新されました サイズは 7 バイトです ファイルが更新されました サイズは 9 バイトです 32

// import java.io.*; として 以下のようにして // ファイルを表すクラスのインスタンスを作成します File file = new File("test.txt"); // ファイルサイズの取得は以下のように行います long size = file.length(); // ファイルの更新時刻 ( エポック からの経過時間をミリ秒単位で表したもの ) の取得は以下のように行います long lastmodified = file.lastmodified(); 33