title: Multithreaded evaluation using Negamax + alpha-beta pruning with transposition tables
body: <p>I just implemented a nice-working evaluation function for checkers. Current implementation uses threads and separate transposition tables for each. </p>
  
  <p>I spawn a thread for every move that is available in the root node (initial board position) and then analyze it using negamax with alpha-beta pruning. I always do it for the CPU player to find a best move. I don't analyze moves available to the user.</p>
  
  <p>Now I have two considerations:</p>
  
  <ol>
  <li><p>Can I safely share a single transposition table between all these threads (threads will be synchronized of course)? </p></li>
  <li><p>Every time I start a new analysis, should I clear the table(s) or they are safe to use?</p></li>
  </ol>
  
  <p>Any thoughts?</p>