草庐IT

线程不安全

全部标签

通过python多线程下载基于m3u8和ts的视频文件

开篇介绍需求和使用场景有些时候想要把在线观看的视频保存下来,或由于在线看很卡顿想离线看,但官方并没有提供下载工具,如果使用录频软件则电脑同时不能进行其他操作,而且有些电影看过一遍也不会想再看,因此想到用脚本下载。在浏览器种按F12查看网络情况,发现下载的都是ts文件:(图片为其他图片,和本文没关系,只是介绍查看的方式)因此,本脚本只适用于下载基于m3u8和ts的视频。知识背景查阅相关blog了解到,ts文件是切片的视频,一般几秒钟不等,而浏览器加载ts的前提是先获取到了对应m3u8文件,所有ts的url都在该m3u8文件中。而m3u8文件一般在对应视频网页刚打开的时候加载的。因此可以联想到,先

php - 为什么不是所有线程都完成?

我试过这个Joe回答中的例子https://stackoverflow.com/a/32187103/2229367效果很好,但是当我尝试稍微编辑一下这段代码时:$pool=newPool(4);while(@$i++submit(newclass($i)extendsCollectable{publicfunction__construct($id){$this->id=$id;}publicfunctionrun(){printf("HelloWorldfrom%d\n",$this->id);$this->html=file_get_contents('http://google

php - 如何在 PHP7 中使用 pThreads 实现多线程? worker 、游泳池等

我目前想学习和实现pthreads-github.我用必要的组件编译了php7并验证了thread-safety已启用。我当前的示例代码有4个属于父类Canine的子类。我应该如何相应地调用Thread类以同时从下面显示的所有类执行bark()?记住当类从4增加到100时的扩展能力。池?工作人员?classDatabase{private$_host;private$_user;private$_pass;private$_dbname;private$_dsn;private$_options;publicstatic$pdo;private$error;private$stmt;p

php - PHP Intl 扩展线程安全吗?

我一直在阅读有关PHP语言环境的文章,似乎setlocale()有线程问题。(我对线程不太熟悉——文档提到它不是线程安全的)我想让我的项目能够处理某些数字格式,而且Intl扩展似乎很有趣。http://php.net/manual/en/book.intl.php我是否应该预料到setlocale()使用Intl扩展时会出现同样的问题? 最佳答案 好吧,我自己也对此很好奇,所以我设计了一个测试。首先我用这两个文件测试了setlocale():和然后我在两个单独的选项卡中执行它们。首先是locale1.php,它会在设置语言环境后休眠

PHP 线程 ( pthreads ) 正在工作,但没有任何 Stackable 类

最近几天我将PHP线程(pthreads)与PHP7.0.1(在配置中使用–enable-maintainer-zts)一起使用,并且在使用Thread或Worker时一切正常。当我尝试为Worker创建一个继承自Stackable的类时,我得到了“fatalerror:未找到类‘Stackable’”。通过get_declared_classes()我意识到对于线程我只有Threaded、Volatile、Thread、Worker和Pool类。我以为是pthreads版本的问题(最新的是3.1.15)但是卸载了再安装回3.0.0还是出现了同样的错误。此外,PHP手册(英文)也没有提

php - 将 PHP 代码存储在数据库中,并在运行时对它进行 eval() 处理,不安全吗?

我构建了一个程序来存储、检索和eval()s来自SQLite数据库的代码。在我因为糟糕的编码习惯而受到指责之前,让我们将其视为理论上的,并假装我这样做有充分的理由。抛开所有其他考虑因素,假设用户输入不是一个因素,将PHP代码存储在数据库中并使用eval()运行它是否存在固有的安全风险?说明:我不是eval()ing用户提交的内容。SQLiteDB文件与我的其他文件位于同一目录中,并且应用了相同的安全性。请不要对性能、缓存等发表评论。我知道所有这些。 最佳答案 eval()本身并不安全。这只是不好的做法,不清楚并且会引发一大堆错误和安

php - Laravel 中的多线程

我遇到了一个问题,我的数据库调用显着减慢了页面加载速度。我正在从选举数据中填充多个图表,我的表包含大约100万行,我必须在getCharts()方法内的每个方法中多次查询此数据。我是usingthis将返回数据传递给JavaScript。当您单击数据点时,这些图表会重新填充。因此,如果您单击一个点,即('democrat),它将重新加载页面并再次调用这些方法。我想问的是是否可以在nativePHP中执行类似的操作。服务器在linode上运行PHP5.2。foreach(functioningetChartsMethod){Startachildthreadtoprocessthefun

php - 为什么PHP不支持多线程?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我到处都读到PHP不支持多线程,但有解决方法。但是为什么PHP不支持多线程呢?对于服务器端脚本语言,这似乎是一个明显的遗漏。

php - 安装 moodle 时出错。 Dataroot 位置不安全且父目录 (/var) 不可写。

我正在尝试安装moodle,但在指定moodle数据文件夹的路径时遇到错误。基本上,他们希望它位于无法从网络访问的地方。我试过将它放在/var/moodledata中,这给了我一个错误提示父目录(/var)不可写。安装程序无法创建数据目录(/var/moodledata)。并在/var/www/moodledata处给我一个错误,提示Datarootlocationisnotsecure我尝试将sudo(权限)授予/var/www/文件夹,还尝试破解install.php通过注释掉以下行来跳过验证/*while(is_dataroot_insecure()){$parrent=dirn

php - 可以使用 Cron 作业来模拟 PHP 的多线程吗?

我有一个mysql数据库表,其中包含1000多条记录,比如说5000条记录。每条记录都有一个processedbool标志,默认为false(0)。我想做的是每分钟在cron上运行一个PHP脚本。它的代码是这样的:db->query($sql);if(!$result->has_rows())die;$id=$result->getSingle('id');processItem($id);//Willsetprocessedto1afterprocessingisdoneprocess();}?>应该很清楚上面的代码做了什么,它获取下一条未处理的记录的id,处理它,然后再次调用pro