在ThreadPoolExecutor中使用堆栈而不是队列

时间:2016-03-12 09:42:43

标签: java android multithreading threadpoolexecutor

我正在开发一个我希望实现一个简单的下载程序的android项目。所以我使用ThreadPool,其实现如下

 /* CHECKING */
        if (isset($_POST["urlCheck"])) {
            $url = $_POST["urlCheck"];
            $urlParts = explode("facebook.com/", $url);
            $username = GetOnlyUsername($urlParts[1]);

            if (filter_var($url, FILTER_VALIDATE_URL) !== false) 
                exit("success");
            else 
                exit("error");              
        }

        /* TAKING INFO */
        if (isset($_POST["urlGetData"])) {
            $url = $_POST["urlGetData"];
            $urlParts = explode("facebook.com/", $url);
            $username = GetOnlyUsername($urlParts[1]);

            $name= GetData($username);


    function GetOnlyUsername($username) {
        if ((strpos($username, 'profile.php?id=')) !== false) {
            $username = str_replace("profile.php?id=", "", $username);  
            if ((strpos($username, '&fref=ts')) !== false) {
                $username = str_replace("&fref=ts", "", $username); 
            }
        } else if ((strpos($username, '?')) !== false) {
            $test = explode("?", $username);
            $username = $test[0];   
        }
        return $username;
    }

它工作正常。问题是ThreadPoolExecuter使用队列,因此上次下载执行时间太长,但我需要更快地执行它们(最后一次下载具有更高的优先级)。

问题是这样,我如何使用堆栈代替此BlockingQueue?

提前致谢

0 个答案:

没有答案