パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

最小限のゲノム473個しか待たない細菌を人工的に作成することに成功」記事へのコメント

  • by Anonymous Coward

    機能は解明されていないってこと?

      // なぜだかわからないが消すと動かない

    というコメントみたいだ。

    • by Anonymous Coward on 2016年03月30日 10時11分 (#2988574)

      実際にこういうプログラムに陥った事があるんだけど、
      理由はマルチコアCPUとスレッドプログラミングの問題で、
      排他処理がうまく行ってなくて、タイミングによって発生したりしなかったり.....
      という状態だったかな。

      この状況が発生したのは、CPUのシングルコア->マルチコア移行期で、シングルコアCPUなら全然問題ないんだけど、
      マルチコアCPUだと不具合を起こす......ってな感じだったよ。
      で、不要なプログラムなんだけど、そのプログラムがあるお陰で別スレッドで処理しているデータ処理の終了と、
      現在動作しているスレッドのタイミングが合って正常に動作するけど、消すとタイミングが変わって不具合が発生してたよ。
      こういう場合、たいていはSleep入れると動いたらしく、当時の担当者はSleep多用してたたけど、
      何か修正するとタイミングがズレて不具合発生したりするんで、オレが引き継いだ時は大変だったよ。
      そんな事があったから、オレはちゃんと他のスレッドで処理中か.....って確認するように修正したけどね。

      親コメント
      • その頃からセマフォとかmutexはWindowsにもU*ix系のOSにもあったような…(;´Д`)
        最低でもU*ix系だとプロセス間の排他ロックの機構ももってましたし(Windows方面は知らないけど多分ある)…
        なので、Sleep云々というバッドノウハウで何とかするより、他の開発者と話をしてジョブスレッドとは関係ないところのスレッドでセマフォ設定してそこを取ってからデータ実体を叩いて貰いに行くように直してもらうのが王道だったのでは(;´Д`)

        親コメント
        • すいません. FreeBSDの初期のICHサウンドドライバでmutex処理を省いていました. 当時はチップセット内蔵のサウンド機能を使うような機種だと, SMP構成なんてありえないだろうと考えていて, ドライバルーチンを抜けるまではスレッドを専有できるという前提でコードを組んでいました. mutex処理を入れることで, コードが見づらくなったり, 貧弱なCPUでオーバーヘッドがかかるのを嫌ったってこともありますが.

          親コメント
        • by Anonymous Coward

          よく読めよ。

          > 当時の担当者はSleep多用してたたけど、
          > 何か修正するとタイミングがズレて不具合発生したりするんで、オレが引き継いだ時は大変だったよ。
          > そんな事があったから、オレはちゃんと他のスレッドで処理中か.....って確認するように修正したけどね。

          • それだと、単純ループの中のフラグでチェックするのもありになって、厄介ですよね。排他が不確実でもとりあえず動きますから。

            なので最低限の問題解決にはなりますけど、複数のタスクを廻す物としてはあまりよろしくない。
            たのむからmutexとか使って排他を確実にやるようにしてー(><)と他の人達にお願いするのが必要でしょうと。

            親コメント
            • by Anonymous Coward

              まあ適材適所でしょう。
              腕の悪いのがよく考えずmutexとかセマフォとかに頼ると
              いとも簡単にデッドロック引き起こしてくれたり、
              不必要なグローバルロックでスループット落としてくれたり。

開いた括弧は必ず閉じる -- あるプログラマー

処理中...