{"id":28454,"date":"2018-03-26T09:52:57","date_gmt":"2018-03-26T07:52:57","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=28454"},"modified":"2018-03-26T09:52:57","modified_gmt":"2018-03-26T07:52:57","slug":"threadable-a-php-library-for-parallel-execution","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/03\/26\/threadable-a-php-library-for-parallel-execution\/","title":{"rendered":"Threadable &#8211; a PHP library for parallel execution"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/wapmorgan\/Threadable\">Threadable<\/a> is a PHP library that helps with building applications that need to run multiple threads in parallel.\u00a0 It relies on posix and pcntl PHP extensions and does all the heavy lifting of process control.\u00a0 I find this very useful, as not many PHP developers are familiar with process management.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Threadable is a PHP library that helps with building applications that need to run multiple threads in parallel.\u00a0 It relies on posix and pcntl PHP extensions and does all the heavy lifting of process control.\u00a0 I find this very useful, as not many PHP developers are familiar with process management.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Threadable - a PHP library for parallel execution #WebDev #PHP","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[38,1330],"keyring_services":[],"class_list":["post-28454","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-php","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27865,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/21\/using-php-fpm-as-a-simple-built-in-async-queue\/","url_meta":{"origin":28454,"position":0},"title":"Using php-fpm as a simple built-in async queue","author":"Leonid Mamchenkov","date":"August 21, 2017","format":false,"excerpt":"Here's an interesting solution for a poor man's asynchronous queue using PHP-FPM: PHP-FPM already acts as a queue for Nginx\/Apache FastCGI clients. While your web-request is running you can just send another FastCGI request to the same PHP-FPM socket asynchronously and non-blocking. This request is immediately executed in another php-fpm\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27454,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/03\/26\/phpqa-all-in-one-analyzer-cli-tool\/","url_meta":{"origin":28454,"position":1},"title":"PHPQA all-in-one Analyzer CLI tool","author":"Leonid Mamchenkov","date":"March 26, 2017","format":false,"excerpt":"PHPQA all-in-one Analyzer CLI tool. \u00a0This project bundles together all the usual PHP quality control tools, and then some. \u00a0It simplifies the installation and configuration of the tools and helps developers to push up the quality control bar on their projects. The tools currently included are: PHP Parallel Lint PHP\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/03\/phplint-500x390.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27684,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/06\/14\/formapropvm-php-library-for-building-workflows-and-business-processes\/","url_meta":{"origin":28454,"position":2},"title":"formapro\/pvm &#8211; PHP library for building workflows and business processes","author":"Leonid Mamchenkov","date":"June 14, 2017","format":false,"excerpt":"formapro\/pvm is a PHP library for building workflows and business processes. \u00a0This is a nice addition to alternatives that I've looked at in \"Getting started with workflows in PHP\". \u00a0The library is brought to you by Forma Pro, the same guys who are behind the php-enqueue enterprise queuing solution in\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/06\/pizza-process-500x211.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28179,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/06\/php-ml-machine-learning-library-for-php\/","url_meta":{"origin":28454,"position":3},"title":"PHP-ML &#8211; Machine Learning library for PHP","author":"Leonid Mamchenkov","date":"November 6, 2017","format":false,"excerpt":"PHP-ML is a machine learning library for PHP.\u00a0 Given, PHP is probably not the best choice when it comes to machine learning, but sometimes one is limited in technology stack choices, so it's good have options like this one. Fresh approach to Machine Learning in PHP. Algorithms, Cross Validation, Neural\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":21719,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/04\/28\/faker-is-a-php-library-that-generates-fake-data\/","url_meta":{"origin":28454,"position":4},"title":"Faker is a PHP library that generates fake data","author":"Leonid Mamchenkov","date":"April 28, 2014","format":"link","excerpt":"Faker is a PHP library that generates fake data","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28559,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/composer-plugin-qa-composer-plugin-for-php-quality-assurance-tools\/","url_meta":{"origin":28454,"position":5},"title":"composer-plugin-qa &#8211; Composer Plugin for PHP Quality Assurance Tools","author":"Leonid Mamchenkov","date":"May 8, 2018","format":false,"excerpt":"composer-plugin-qa is a Composer plugin which adds all the most popular PHP quality assurance tools as composer scripts, so that you don't have to install and set them up one by one.\u00a0 The list of tools includes the following: PHPUnit: Testing Framework PHPCOV: CLI frontend for the\u00a0PHP_CodeCoverage Paratest: Parallel testing\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa-500x296.jpeg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=28454"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28454\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=28454"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=28454"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=28454"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=28454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}