C++, One lock , Add these 7 lines
\nclass DiningPhilosophers {\n    std::mutex m;\npublic:\n    DiningPhilosophers() {\n        \n    }\n\n    void wantsToEat(int philosopher,\n                 
```\nclass DiningPhilosophers {\n    std::mutex m;\npublic:\n    DiningPhilosophers() {\n        \n    }\n\n    void wantsToEat(int philosopher,\n                    function<void()> pickLeftFork,\n                    function<void()> pickRightFork,\n                    function<void()> eat,\n                    function<void()> putLeftFork,\n                    function<void()> putRightFork) {\n\t\tm.lock();\n        pickLeftFork();\n        pickRightFork();\n        eat();\n        putLeftFork();\n        putRightFork();\n        m.unlock();\n    }\n};\n```\nThe only thing is, this is not concurrency at all/ :)
[]