Coding
Concurrency

Bounded Blocking Queue

Premium
Difficulty

Asked at Hudson River Trading, Squarepoint Capital

Theory: Concurrency From Scratch

Read the problem, hints and solution here. The editor needs a bigger screen: open this page on a laptop to write and run your code.

xxx xxxxxxx xxxxxxxx xxxxx xx xxx xxxxxxxx xxxx-xxx xxxxxxx xxxxxx xx x xxxxxxx xxxxxxxx xxxx xxx xxxxxxx xx xxxxx: x xxxxxxxx xxxxxx xxxxxxx xxxxxx xx x xxxxxx xxxxxxx, xxxxxx xxxx xxxxxxx xxx xx xxxxxxxx xxxxxxxxx, xxx xxxxxxx xxxxxxxx xx xxxx. xxx xxxxx xx xxx xxxxx: xx xxx xxxxxxxx xxxxx xxxxxx, xxx xxxxxxxx xxxx xxxx xxxx-xxxxxxxx xxxxxx xxxx xxx xxx xxx xxxxxx.

xxxxxxxxx xxxxxxxxxxxxxxxxxxxx:

  • xxxxxxxx xxxxxxxxxxxxxxxxxxxx(xxx::xxxx_x xxxxxxxx): xxxxxxxx >= x, xxxxx xxx xxx xxxxx'x xxxxxxxx.
  • xxxx xxxx(xxx xxxxx): xxxxxxx xx xxx xxxx. xx xxx xxxxx xxxxx xxxxxxxx xxxxxxxx, xxxxxx xxxxx xxxxx xxxxx xx. xxxxx xxxxx x xxxxx, xxxxx xxxxx xxxx xxxxxxxx.
  • xxx xxx(): xxxxxxx xxx xxxxxxx xxx xxxxx xxxxxxx. xx xxx xxxxx xx xxxxx, xxxxxx xxxxx xx xxxxxxx xxxxxxx.
  • xxx::xxxx_x xxxx() xxxxx: xxxxxxx xxxxxxx xxxxx (xxxxxx-xxxx).

xxx x xxx::xxxxx xxx xxx xxx::xxxxxxxxx_xxxxxxxxx (xxx xxx "xxx xxxx", xxx xxx "xxx xxxxx"). xx-xxxxx xxx xxxx xxxxxxxxx xx xxxxx xxxxxx: xxxxxxxx xxxxxxx xxx xxxx, xxx xx xxxxxxx xx xxxxx (xx xxx xxxxxxxxx xxxxxxxx xx xxxx) xx xxx xxxxxxx xxx xxxx xxxxxxxx xxxxxx xx xxxxx. xxxx xxxxx xxxx xx xxxxxxxxx: xxxx xxx xxxxxxxx xxx xxx xxxxxxxx, xxxxxx xxx xx xxxxxxx xxx xxxxx xxxx xxxx xxxxxx.

xxx xxxxxx xxxxx xxx xxxx xxxxxxxx/xxxxxxxx xxxxxxx xxxxxxx xxxx xxxxx: xxx xxxxxx x xxxxxxxx xx xx xxxxx xxxxx, xxx xxxxx x xxxxxxxx xx x xxxx xxxxx xx xxxxxxxx x, xxx xxx xxxxxxx xxx,xxx xxxxxxxx xxxxxxx xxxxxxxx xx xxx xxxxxx xx xxxxx-xxxxxxxxx xxxxxxxx. xxxx xxx xxxxxx xxx xxxxx; xxx xxxxxxx xxxxxxx xxxxx xxxxxxxxxxx.

xxxxxxxx

[]{ xxxxxxxxxxxxxxxxxxxx x(x); x.xxxx(x); x.xxxx(x); x.xxxx(x); xxx::xxxxxx<xxxx xxxx> xxx; xxx.xxxx_xxxx((xxxx xxxx)x.xxxx()); xxx.xxxx_xxxx(x.xxx()); xxx.xxxx_xxxx(x.xxx()); x.xxxx(x); xxx.xxxx_xxxx(x.xxx()); xxx.xxxx_xxxx(x.xxx()); xxx.xxxx_xxxx((xxxx xxxx)x.xxxx()); xxxxxx xxx; }()
// [x, x, x, x, x, x]  (xxxx, xxxx xxxxxx xxxxxx xxx xxxx)

[]{ xxxxxxxxxxxxxxxxxxxx x(x); xxx::xxxxxx<xxxx xxxx> xxx; x.xxxx(x); xxx.xxxx_xxxx((xxxx xxxx)x.xxxx()); xxx.xxxx_xxxx(x.xxx()); x.xxxx(x); xxx.xxxx_xxxx(x.xxx()); xxx.xxxx_xxxx((xxxx xxxx)x.xxxx()); xxxxxx xxx; }()
// [x, x, x, x]  (xxxxxxxx xxx, xxxxxxxxxxx xxxx/xxx xxxxx xxxxxx)

xxxxxxxxxxx

  • xxx xxxxxxx xx xxxx xx xxx xxxxx (xxx xxxxxxxx, xxx xxxxxxxx), xxx xxxxx xx xxxxxxx xxx xxx xxxxxx: xxx xxxxx xxxxxxxxxxx xxxxx xxx xxxxx.
  • xx xxxx-xxxxxxx: x xxxxxxxx xxx xxxxx x xxxx xxx xxxxx xxx xxxxxx xx xxx xxxxxxxx (xxx xxxxxxxx xx x xxxx xx xxxxx xxxx-xxxxxxx, xxxx xxxxxx).
  • xxx xxx,xxx-xxxx xxxxxx xxxx xxxxxx xxxxxxxxxxx; xxxx xx xxxxxxxxxx xx xxx xxxxxxx xxxxxxxxx-xxxxxxxx xxxxxxxxxxxxxx xxx xxxxx xxx xxxxx-xxx-xxxx xxxxxxx.

This problem is only available to subscribers.

Language: C++BoundedBlockingQueue
Sample tests

Unlock the problem to run it against the tests.