yuu_nkjm blog
2008-12-15(Mon) 編集
[Java][技術書] 結城 浩 - 増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編
「結城 浩- 増補改訂版Java言語で学ぶデザインパターン入門」が良かったので,マルチスレッド編も買ってみた.マルチスレッドプログラミングの経験が無い人でも読みやすかった(7章までしか読んでないけど).また,Java上でのメモリの扱われ方,Java上での同期処理などについて書かれていて,その部分も役に立った.デザインパターンと銘打っているが,そんなにパターン感はなかった.
7章までを読んだところでは,「シングルスレッドで動く二つのプログラムを作成し,同期処理をするための層を間に挟む構成」とするのが基本のようだ.同期処理を間の層に押し込めば,他の二つのプログラムはマルチスレッドを意識しなくて良くなる.
2015-12-15(Tue) 編集
[Kawa][Scheme] Kawaでの例外のキャッチ
(try-catch (display "test" "test") (ex((org.apache.logging.log4j.LogManager:getLogger):error ex ex)))
2015-12-15 11:54:05.165 ERROR [Thread-3] atInteractiveLevel$165.run(stdin:11) Argument #3 'test' to 'gnu.kawa.functions.DisplayFormat.format(java.lang.Object,gnu.lists.Consumer)' has wrong type (String) (java.lang.String cannot be cast to gnu.lists.Consumer) gnu.mapping.WrongType: Argument #3 'test' to 'gnu.kawa.functions.DisplayFormat.format(java.lang.Object,gnu.lists.Consumer)' has wrong type (String) (java.lang.String cannot be cast to gnu.lists.Consumer) at kawa.lib.ports.display(ports.scm:315) ~[kawa-2.0.jar:?] at atInteractiveLevel$165.run(stdin:9) [?:?] at gnu.expr.ModuleExp.evalModule2(ModuleExp.java:317) [kawa-2.0.jar:?] at gnu.expr.ModuleExp.evalModule(ModuleExp.java:219) [kawa-2.0.jar:?] at kawa.Shell.run(Shell.java:291) [kawa-2.0.jar:?] at kawa.Shell.run(Shell.java:203) [kawa-2.0.jar:?] at kawa.Shell.run(Shell.java:184) [kawa-2.0.jar:?] at kawa.ReplDocument$2.apply0(ReplDocument.java:98) [kawa-2.0.jar:?] at gnu.mapping.RunnableClosure.run(RunnableClosure.java:80) [kawa-2.0.jar:?] at gnu.mapping.Future.run(Future.java:46) [kawa-2.0.jar:?] Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to gnu.lists.Consumer at kawa.lib.ports.display(ports.scm:314) ~[kawa-2.0.jar:?] ... 9 more