私がstop-the-world GCを使用し、finalize()
メソッドでいくつかの処理を行うと、すべてのスレッドが中断されていると仮定して、何でもできますし、スレッドはリソースと競合する私はGCのスレッドを除いて?排他ロックとしてファイナライズを使用する
3
A
答えて
4
いいえ、実際にも、同時に実行される複数のファイナライザスレッドが存在してもよい..異なるGCの実装の間で変化してもよいです。
java language specから、「ファイナライザは、任意の順序で、または同時に呼び出すことができます。」
2
んが、あなたがすることはできません - 少なくとも私の知る限りホットスポットの実装を理解するよう:
は、少なくともそれはそれはマーク&スイープGCでどのように動作するかですが、私はそれが他のすべての実装に似てかなり確信しています
マークされていないファイナライズされたオブジェクトはすべて、マークビットが設定されたワークリストに追加されます。
次に、バックグラウンドワーカーがこのリストを処理し、1つのファイナライズコールで終了した後、マークビットがクリアされ、次のGCでクリアされます。その結果、finalizeメソッドがいつ呼び出されるかについては何も仮定することはできません(バックグラウンドスレッドはおそらく停止している可能性があるので、GC実行中ではないことを確かめることができます)。
は今ではホットスポットのための実装の詳細だとも
関連する問題
- 1. テスト排他ロック
- 2. NHibernate:排他ロック
- 3. MySQL:排他ロック
- 4. とノーロックと排他ロック
- 5. 排他ロックmysqlデータベースには?
- 6. PTYへのSocat排他ロック
- 7. boost :: shared_lockを排他ロックにアップグレードする
- 8. 排他ロックと共有ロックの違いは何ですか?
- 9. linux flock(2)を排他的な排他ロック要求から守るには?
- 10. 接続文字列を使用してSQL Express DBを接続すると、排他ロックですか?
- 11. IBM MQ送信キュー排他ロック
- 12. SqliteのファイナライズとDbロックの問題
- 13. 排他的ロックを取る正しい方法
- 14. Hibernateを使用したSpringトランザクションを使用するSQL Server排他的な行ロック(XLOCK ROWLOCK)
- 15. PostgreSQLの排他ロックがアプリケーションを停止します
- 16. 排他的なリソースアクセスのHTTPリクエストをロックする
- 17. (XLock、RowLock)は行を排他的にロックしません
- 18. SQlite JDBCライブラリを使用してJava/Scalaで排他ロックを持つSqlite接続を開きます
- 19. RubyとActiveRecordを使用して排他INクエリを構築する方法は?
- 20. はファイルの排他ロックを取得できません
- 21. 排他的な引数を使用してmongoコレクションを照会する方法
- 22. ヒットを無効にして、インナーヒットを排他的に使用する
- 23. ラジオボタンとチェックボックスを排他にする
- 24. iPhone&Objective-Cの共有/排他ロック機構?
- 25. 排他ロック(行レベル) - MySqlに例が必要
- 26. Java - 排他アクセスのためのファイルのロック
- 27. SQL - 範囲を使用してカウントするが、排他的ではない
- 28. SQL Server。挿入が行われている間にテーブルに排他ロックを適用する方法は?
- 29. HDF5ファイルへの書き込み時に排他ロックを取得する
- 30. 相互に排他的なグループを使用する
*「スレッドは競争することはできません」* - 私は貧しい小さなアプリケーションスレッドが大きな意味を持つ古いGCスレッドが終了するのを待ってコーナーで震えていることを想像することができます:-) –