タグ デフォルト実装
人気順 5 users 50 users 100 users 500 users 1000 usersRustの std::sync::RwLock はLinuxでwriter starvation問題を起こす (macOSなら平気)
まとめ: std::sync::RwLock::{write(), try_read()} を併用した場合には「書き込みロックを最優先」という挙動は必ずしも期待できない (LinuxではNG) Pthread の規約が挙動に自由度をもたせており、Linuxにおけるデフォルト実装では writer starvation が発生する Rustにおいて writer starvation を回避しつつ readers-... 続きを読む
インターフェースを「契約」として見たときの問題点 ― C#への「インターフェースのデフォルト実装」の導入(前編) - Build Insider
C#におけるインターフェースとは、ある型が持つべきメソッドを示す「契約」であり、実装は持てない。だが、このことが大きな問題となりつつある。今回から全3回に分けて、C#がこの問題にどう対処しようとしているかを見ていく。 ← 前回 連載 INDEX 現在、「C#にインターフェースのデフォルト実装(Javaでいうデフォルトメソッドに相当する機能)を追加しよう」という話がある。C#にこの機能を導入するに当... 続きを読む
Java8でScala不要論? - ひしだまの変更履歴
たぶんジョークだと思うんだが「Java8があったらScalaが不要になる」みたいな事を言っている人がいて、本気だとすると、Java8もScalaも見たことないのに言ってるだけだと思う。 ということで一応マジレス?しておく(笑) Java8でインターフェースにメソッド(デフォルト実装)が持てるようになった。 Java8のインターフェースは可視性にpublicしか指定できないが、Scalaのトレイト... 続きを読む
Java8で最もインパクトのある構文拡張、デフォルトメソッド - きしだのはてな
Java8でのラムダの使い方などを説明してきたのですが、構文拡張自体には触れていなかったので、改めてここで簡単に説明しておこうと思います。まずは、Java8で実際に最もインパクトがある言語拡張、インタフェースのデフォルトメソッドです。 デフォルトメソッドとデフォルト実装いままでインタフェースには実装をもつことができませんでしたが、Java 8からはインタフェースが実装をもてるようになります。実装を... 続きを読む