{"action":"created","issue":{"url":"https://api.github.com/repos/cameron314/concurrentqueue/issues/34","labels_url":"https://api.github.com/repos/cameron314/concurrentqueue/issues/34/labels{/name}","comments_url":"https://api.github.com/repos/cameron314/concurrentqueue/issues/34/comments","events_url":"https://api.github.com/repos/cameron314/concurrentqueue/issues/34/events","html_url":"https://github.com/cameron314/concurrentqueue/issues/34","id":122873543,"number":34,"title":"About ConsumerToken","user":{"login":"alanchb","id":8552682,"avatar_url":"https://avatars.githubusercontent.com/u/8552682?v=3","gravatar_id":"","url":"https://api.github.com/users/alanchb","html_url":"https://github.com/alanchb","followers_url":"https://api.github.com/users/alanchb/followers","following_url":"https://api.github.com/users/alanchb/following{/other_user}","gists_url":"https://api.github.com/users/alanchb/gists{/gist_id}","starred_url":"https://api.github.com/users/alanchb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alanchb/subscriptions","organizations_url":"https://api.github.com/users/alanchb/orgs","repos_url":"https://api.github.com/users/alanchb/repos","events_url":"https://api.github.com/users/alanchb/events{/privacy}","received_events_url":"https://api.github.com/users/alanchb/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cameron314/concurrentqueue/labels/question","name":"question","color":"cc317c"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-12-18T03:48:10Z","updated_at":"2015-12-21T02:44:05Z","closed_at":"2015-12-18T04:20:08Z","body":"Hi，there's another question.\r\n\r\nI create a single ConsumerToken which used in multi-thread without synchronization.It appears that the dequeue method in every thread act correctlly.In your readme I found:\r\n\r\n***************** from readme\r\nThe queue can take advantage of extra per-producer and per-consumer storage if\r\nit's available to speed up its operations. This takes the form of \"tokens\":\r\nYou can create a consumer token and/or a producer token for each thread or task\r\n(tokens themselves are not thread-safe), and use the methods that accept a token\r\nas their first parameter\r\n*****************\r\n\r\nSo my confution is whether the ConsumerToken is thread-safe or not exactlly? And in which situations should I use ConsumerToken?\r\n\r\nThanks a lot."},"comment":{"url":"https://api.github.com/repos/cameron314/concurrentqueue/issues/comments/166182255","html_url":"https://github.com/cameron314/concurrentqueue/issues/34#issuecomment-166182255","issue_url":"https://api.github.com/repos/cameron314/concurrentqueue/issues/34","id":166182255,"user":{"login":"alanchb","id":8552682,"avatar_url":"https://avatars.githubusercontent.com/u/8552682?v=3","gravatar_id":"","url":"https://api.github.com/users/alanchb","html_url":"https://github.com/alanchb","followers_url":"https://api.github.com/users/alanchb/followers","following_url":"https://api.github.com/users/alanchb/following{/other_user}","gists_url":"https://api.github.com/users/alanchb/gists{/gist_id}","starred_url":"https://api.github.com/users/alanchb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alanchb/subscriptions","organizations_url":"https://api.github.com/users/alanchb/orgs","repos_url":"https://api.github.com/users/alanchb/repos","events_url":"https://api.github.com/users/alanchb/events{/privacy}","received_events_url":"https://api.github.com/users/alanchb/received_events","type":"User","site_admin":false},"created_at":"2015-12-21T02:44:05Z","updated_at":"2015-12-21T02:44:05Z","body":"I see, thank you very much!"}}