いくつかのライブラリを介して、この関数を 1 つのインスタンスで同時に 2 回呼び出していることに気付きました (Executors.newSingleThreadScheduledExecutor によって返される実装を使用)。2 番目の呼び出しに渡された Runnable は、すぐにも次のスケジュールされたスロットでも実行されないようで、例外は発生しません。2 つの呼び出しをシリアル化すると (2 番目の呼び出し元のスケジューリング呼び出しの前にブレークポイントを配置することで、これを非常に大雑把かつ意図せずに行った)、2 番目のランナブルは問題なく実行されます。
私はこのインターフェイスを初めて使用しますが、これらのスケジューリング関数は再入可能に設計されているようには見えません。しかし、ここで何が起こるべきかを説明しているさまざまなドキュメントには何も見つかりません。