android 多线程
本章讲述在android开发中,多线程的应用。多线程能够处理耗时的操作并优化程序的性能。本章主要介绍知识点,AsyncTask,Java线程池,ThreadPoolExecutor线程池类。本章案例只是抛砖引玉,在多线程应用方面,推荐研究大文件断点续传下载文件方面的应用。
1.功能需求
用AsyncTask来实现文件下载,要求:
- 可在文本框中输入请求路径,点击按钮开始下载
- 在界面上实时更新下载进度
- 如果文件已存在,则删除原文件再进行下载
2.软件实现
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYcAAAK/CAIAAAANvZZ0AAAgAElEQVR4nOydd3gbVbr/R8Vy7y2JU52eOMSxE5dYxS3uRb33mSGUQBotbAIsS9nLcrewuyzswrLsZRfuXfbuj4sdSAihhhQgpAAhjTTJ3bIsKRuIEz2/P449GUuyXGJZiv1+nu+TxxrNjI7GmY/ec+aMjGEAAAAAAAAAAAAAAAAAAAAAAAAAAIQqcXFxDz74IIZhaWlpy5cvT05OxjDs5z//OZvNDnbTAAC4NYmOjn7yySdPnz599erVa9euXbhw4fnnn09ISBjh5gwG47XXXjt9+rTb7Xa73devXz99+vQzzzwT0DYDwC1KXV3dzp07H3jgAY+P7aKiov/7v/978sknIyIiht0Jg8FISkoSi8W//e1vm5qa3n777d/85jdCoTApKYnBYASi2ewBArFzT/R6/Q8//OD2oq+v7+GHHx7JHuLi4n744Ye+vj5q22vXrtnt9rCwsEA3HgBuLX7/+9+73e4ffvhh8+bNaWlpJpPpySefvP/++7Ozs/l8/rfffut2u7u6uvyc/GFhYVu3bu3o6Lh+/br3aXv9+vX29vaNGzeOuz5WrVqVk5OTk5PjZ53333//6uhxOp1ZWVk39rJhwwbvN0bnueeeG7a5b7zxxvXr1zMyMi5evOh2uw8dOrRy5Uq32/3ss8/e/LEAxpeoqKgnfbF8+XLvlRMTE5977rnvvvtu//79Op0OfQhv3rzZe/ONGzeiTWJjY7tpdHV1ff755w8++GB4eDiGYQwGo6Ojo7u7u62tzaMiyMrKQpv87//+b+APQ3BgsVg//vjj119/PXfu3AMHDnhoxW6319bWbt++3e124zjucw9isdjlcqH1jxw58sQTT/B4vOnTp8+YMYPP5z/99NPHjx9Hzzocjrq6unFs/Eis5F8mfti0aVP/LubOnUs/LpcvX3700UfLy8uRZajlPB7Pf3Ptdrvb7e7u7qZs3dPT43a7LRbLeB0RYLxISkry+Rnb2NjovabT6bx69erZs2c7Ojrcbvebb76JYRj1/57O4cOH0VaxsbFut7uvr886gMPhcLvd586dCwsLYzAYP/74I9pELBbTX+7VV19Fy3fv3j0xh2LiYbPZZ8+eXbx48b///W+3293S0nLffffl5uYKhcLPPvsM/V6eeuqpRx555L777vPeHAnr2rVrr7zyChq99Ulqaurrr7+O9nbjbB89LBZr8eLFixcvnjlzJjYCKzEYDO//GH19fR0dHVevXqUvvHz5MvofRbF58+b+vezbt49aeu3atXnz5tXX1//5z3+OjY396U9/Sj116dIln42Ij4//4x//GBMTk5KSkpycnDIA/ee0tLQXXniBw+GM+dAA4w6DBpvN/v7771taWiIjIzMyMq5fv3716lVU1zQ1Nbndbj6fj2EYk8k8e/as2+3OyMhgDObhhx++fv16aWkp2jmyEv0Dic1mI5GJxWK6lY4dO0atw2KxLl++jE6kSWwlDMPS09NtNpvb7d6xYweqPbdu3YoO+PLlyy9fvux2uysrK32O6rJYrM8//3zevHkYhjGZzIKCgn/84x/nzp27cuXKlStXzp49+8Ybb+Tm5jKZTAzDFi9efPDgQRaLNeamzpw5E/2mjhw5gg1npdjY2Li4OG8r/frXv16/fj36z0N5auvWrevXr6d/OvZbKSYm5tq1a9TSb775Bhuoen72s5/NmzePvutZs2Z5t+Ovf/2r2+0uLS31bgriypUrQqHQ7XZrNJoxHxogoLzxxhs//vjjnDlzMAxDVurr60MnSWdn548//kh9orz44otutzs3N5e++dq1a69du/b4449TS7ythGHYk08+6Xa7n3nmGcpK33//fV9fX3x8PFqBx+O53e433nhj0lvp0UcfdbvdL730ErXkypUr6enp6Ofly5ejrob/EevCwsK2tjZ0ll2/fv3atWvXrl2jTnKr1erxaxobI7dSRkaGTwN8+OGHd911l4eVfve73919992+rZSZmUnf/t///vf58+fRmywoKBAIBPRna2trvZvyX//1X263u6yszI+VRCKR2+3WarU3f4yAcae+vt7tdqNZHRiGMZnM1NTU1NRU9NBgMBgMBnR6MBiMEydOuN3uuXPnUptHREQ4HI5z586hD2dEbGzs9evX6VZiMBj79+93u90kSVJWwnHc7Xbff//9aJ233nrL7Xbz+fzJbSUGg9Hd3X316tXIyEhqId1KGIahY7VixYqhdpKWloY6RAcOHMjNzY2JiUFFa2xsbF5e3hdffOF2u69evZqYmDiGFi5btqygoKCgoIDNZo/cStSadDo7O++6667Dhw+vX7/+zJkzaOFnn322efPm3bt3+7bSkiVLvHfkdDpL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o2q/fygrdXd322w2ZKU5c+bMGwyDwfCw0pYtW6Kiomw2G4ZhL7/8stPpbGlpQbWSSCSir4nGlTysdM8992AYdunSpY6ODiaT+dRTT3m3rby8HGqlW50bd5wEuQcXbCshAmqlYbnrrrvQfTCdnZ1UG+677z4Mw06ePOm9fnd397lz5+hTe3xaadxBVmpvb1++fPnPf/5zZCWr1Upfx+l0etRKO3fuxDAMqYTJZFLzlZCVoqKiZtGYMWOGt5Vmz549bdo0l8s1rJWgVrqlGfndubd2D27Yud0INETicVNo4KzU3t6+Z8+et99+++WXX3700UezsrLYbHZSUlJYWBi6V27Pnj1sNjs+Pr6hocHlcu3YscPnzfoUyEqrV68etoXPPPPME0884XOy4rC89dZbDAZj4cKF4eHhn3zyCbJS3P9v786f46rOvIHLSaUGairJMANJzZRb8i6vanW31K2tb+/7KvWibvV+HjUMGNsx8LIEGJyXYYZAmEkmlZBkSMKbYfKCX4bNZiB2IOAkuAKVGhaz2GY3Bmwsa+n7B7w/nNbV7UVCMjY6Ft9PdbnUt2/fvr2c733OuafbX/va17/+9a997WtfndbS0hIMBpV7jY+Pt7e387zgtRJfzlPJbrc/q3LffffVpdJrr73W0tLCv39z8uTJZcuW3XrrrRMNHA5HXa1UqVSuv/76nTt38hMIsiw/++yzO3fu3LVrl7LOTTfdxM828KsvvPDCzp07b7zxRmWFXbt27dy5U5mJeujQoZ07d1533XX4ssu5sNBvnIibSmNjY+3t7QMDA3a7vaWlZePGjfxnooho2bJlf/u3f1ssFnO53MjISCgUslqtWq1Wo9HUlfp33HHHsmXLXn311X/5l3+5//77H3300b179957770tLS133nnn448//uijjz744IN33333Aw88MMfO8HGl8vSI+2z4tMCWlpaLL77YaDRu2rTpm9/85gsvvPDRRx+Nj4//9re//cpXvnL77bf/8Y9/5AMx3/jGNyKRyBwb5Km0adOmT325LrroomXLljWeiJwPPkB24YUX/vnPf5Zl+fvf/35LS8vRo0dPnDjx8ccfnzhxgv/ROK7EQ3BiYmLZsmXK6bk5ZgaoU8lkMi1btoz/yAmvlermRnHLli2rq5V41dbS0vLEE0/wJXfffXdLS8vf/d3fKetcfPHFyveN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572eve/zcql777Guvce69x773w89vdgJcybOOJWWwjm45557bj+AwPbt3/+b/b99cv9vn9j/28f3P7V3/9OP7X/6kf2/e2jf7x7c98zufc/+3/0H7tt34Ff7fv/LfX/4+b4//Gzfc3fvO/jj3xy8Z98fH9j/7BP7f7vYz+BMPPfcc2eWSgLVSjgHB0tYZfo03CQ/E1edBFD5ZKpyYrLy0YR8fLzywXjlvdOVd8Yqb56aOvzJ1JFPpo6NV05PVb5AY91LZrQb4PxVTStZnlQF1ukpeWyycnqqMvmFCiRZllErAQioorp8AYlVK+EbJwCA/00AAMQiViqhBwcAYo0roVYCANRKACAW1EoAIJYlMrcbAJaMRa6VGGOolQBArbFWYoyhBwcAiwY9OACYUalUKov9rbslNdp9+PDhm266KZFIbNu27cCBA+qbDh48uGPHjssuu+zhhx+empr5HeQjR45s3769VCo9/fTTysJKpZJOp3/zm9+c8Z4ALK5Dhw5dc801yWRy165db7/9trJ8YmLiV7/61ejo6NatW5988sm6AJqcnOzv79+3b5+y5He/+10qlVKvMzU19fDDD19++eWXXnrp7t27JycnlZveeuutf/iHf0in0zfffPNbb711xju/dGYGHDx40GAwdHd3x+Pxvr4+nU73ve99j9/04x//WK/X9/X1mc1mvV5/2WWX8eUnT540mUy33nrrQw89ZDAYnnrqKb78iSeesNls6pcb4Dzy3//93waDoVAo3H333bFYrKur65VXXpFleWpqKh6P9/T03Hnnnbt27erq6rr66qvVdzx48KDRaBwfH+dXJyYmAoGA2WxWr3PppZd2d3f/4z/+4+23324ymbLZLF/+yiuvdHd3J5PJu+++O5FIdHV1vfjii2e2/4v8PbizONqdzWb1ev2rr74qy/Lp06d7e3v7+voqlcrJkye7u7u9Xu/ExMTU1NSOHTv0ev2f/vQnWZYffPBBg8HwySefyLIcCATK5bIsy5OTkw6H45FHHjmz3QBYXJVKxW63RyIRXgdNTk5aLJYrr7xSluVnnnlGr9e/9tprfM0HH3xQr9e/8847yn2LxeItt9wiy/If//jHa6+9tr+/X6fTSZKkrPDqq6/q9fpnn32WXz148KBOp3v++edlWY5Go8FgkHdEpqameKac2VNorJUWc7T7s9RK8Xjc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" alt="" width="308" height="509" />
图1 AsyncTask下载文件
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAALECAIAAACpKvHnAAAgAElEQVR4nOydeVgT1/6HJyzibrUuV+2mXe/tZrW1de9yW9tqW7WLvdau1tvb295fV0Et1t1q3RcwCzuobC6IArK44AbOZCOBQCAsgUD2kISsM3Oe3x+jMQYEbKUY+L7P5/Ehk5mTyZnJm3POnInY5GmzJk+bNWLUaBaLhQEAANyRsFisEaNGY4ywwFYAANzhsFgs7Pnps56fPqu79wQAAKATgLAAAPAbQFgAAPgNICwAAPyGrhPW4MGDw8LCMAwbOXLk448/fvfdd2MYtnnz5qCgoK54OQAAej7tCGvAgAEbN26srKx0u90URdXV1UVGRt51112dLJnFYiUlJVVWViKEEEI0TVdWVv7++++3b98BoOcwd+7crKys0NBQn2/0adOmHT9+fOPGjX379u2wEBaLNWzYsAULFuzdu/fEiROZmZm7d++eN2/esGHDumgmQNA1uqLwNpg8bVZI336tl3/yySdOpxO1giTJlStXdqbkwYMHO51OkiQ921IU1dzcHBwcfLvfBAD4NxEREQghp9P5ww8/jBw58vPPP9+4ceOyZcsmTJgwc+bMsrIyhJBer2/HC8HBwT/99JNWq6VpuvXHlqZpjUbz3Xff3XazPPPMMxMnTpw4cWI76xQUFLhvHYvF8vjjj/uW9dzUNoT17bfftn7P3uzZs6fDd5KcnEzT9NixY5VKJULoypUrTz/9NEJo27Ztt1gnQJfTv3//jW3RxhmDYUOHDt2zZ095efnly5c//vhj5qv7hx9+aL35d999x2wyaNAggxd6vR7H8bCwsJCQEAzDWCyWVqs1GAxqtdqnHfHEE08wmxw5cqTrq6F7CAwMdLlcUqn0gQceKCoq8jFOc3PznDlzwsPDEUJLlixps4QFCxa0tLQw64tEog0bNsyYMWP06NFjxoyZOXPmb7/9JpFImGctFsvcuXNv4853Rljty6Qdvv/+e9+ynp0y49kpM7yXPPDAA95VZrPZVq9e/c9//pMRkGf5jBkzfMu6kebmZoSQwWDwON5kMiGEGhoa/lDNAF3IsGHD2vxmfuedd1qvabVa3W63QqHQarUIofT0dAzDPB8JbwQCAbPVoEGDEEIkSaquYbFYEEI1NTXBwcEsFsvlcjGbLFiwwPvl4uPjmeW5ubl/TVX89QQFBSkUikcffdRutyOEGhsbf/7550mTJs2bN+/SpUvMcdm0adOvv/76888/t96ccRlFUbGxscxIcZuMGDHi0KFDTGltiKDTBAYGPvroo48++ug999yDdUJYLBar9Ynhdrubmpo8B52hpaWlqanJe8kPP/zgW9yk56dPen6695KLFy96NqAoaty4cW+99VZMTMygQYPWrl3reaq+vr7N/RsyZAiXyx04cODw4cPvvvvu4dfw/nvkyJFsNrtPnz5/uNaA2w7Li6CgoOrq6sbGxn79+o0dO5amabfbzbSGTpw4gRCaOXMmhmEBAQEKhQIhNHbsWNaNrFy5kqbpl19+mSmcEZb3d1VQUBDjuAULFngLq6SkxLNOYGCgzWZjPmM9WFgYho0aNcpoNCKEVq1axbRYf/rpJ6bCH3/8cZvNhhCaPXt2myPIgYGBOI6PGzcOw7CAgIAXXnghLS2tpqbG4XA4HA6FQpGcnDxp0qSAgAAMwx599NHi4uLAwMA/vKv33HMPc6REIhHWkbAGDRo0ePDg1sJas2bN/PnzZTKZt8I++eST+fPne39xtiGsZyZPfWbyVM/DgQMHUhTl2aC0tBS71lZav379uHHjvF/13nvvbb2LCQkJCKGXX3659V4yOByOefPmIYQ++uijP1xrQJeSnJzscrnuv/9+DMMYYZEkyXx+dDqdy+XyfNlwOByE0KRJk7w3nzp1KkVR69at8yxpLSwMwzZu3IgQ+v333z3Cqq6uJklyyJAhzAozZsxACCUnJ/d4Ya1evRohFBUV5VnicDhGjRrF/P34448zHZT2B86nTJmiVquZTxlN0xRFURTl+fyrVCqfw/TH6Lywxo4d26YBsrOz33//fR9hbdiw4YMPPuhYWE8/O+XpZ6d4Ho4fP967aLvdXltby7z/F154YdasWd7Pzpkzp/VeJiYmIoReeeWVdoQ1f/58hNDixYv/fPUBt5233noLIcRMScEwLCAgYMSIESNGjGAefvrpp59++inzyWGxWMw598ADD3g279u3r8ViqampYb7SGQYNGkTTtLewWCzW5cuXEUJLly71CGvJkiUIoWXLljHrZGRkIIRmzpzZs4XFYrEMBoPb7e7X7/posrewMAxj6urJJ5+8WSEjR450u90IoaKiokmTJg0cOJBp6g4aNGjy5MkEQSCE3G730KFD/8Ae/uMf/3jhhRdeeOGFoKCgzgvLs6Y3arX6vffeKyoq8hbW6dOnFy9efOzYsY6F9dSk55+a9Lzn4WOPPdb6NaxW60svvTRy5Eim1eph4cKFrfcyKSmpQ2ExLSwQ1h1Inz59mEHuDi8nsVisbdu2IYTOnj3rvZzNZiOEpkyZ4r2QEZbD4Th16tSpU6fy8vKqq6sRQjabjfloMcIaPXo0SZK1tbUsFqtv375Op1Mulz/44IM9W1hBQUFut9un+ekjrPfeew8h9L///a+dchYuXDh58mTm7/79+zNfM/3792eWTJs2rfWIZCdhLlMihMaMGfNnhOV2uz///PPMzMy6ujqPsNRq9QcffFBXV5eVleUjrDbG2p6aOPmpiZM9D++77z6f1xCJRIMGDVq8eHHrWQ6vvPJK672EFpZf89VXX7V9otzIkCFDCgsLEULFxcXe81SGDBniMY73+kyXkDllGZxOZ25u7n333YdhGIvFYloHgwYNOn36NE3TY8aMmT17NkLo//7v/5hWf15eXle83zuBoKAgmqarq6s9S2bNmuV2u71HrJ5//nmEUHh4eIeljRs3rqioyDOwQ1HUxYsXmXq+Jfr06dOnTx/m4JaWlnqEde+993oLa8KECZ0XVnp6+sKFC2NjY/fs2TN//vwdO3Y0NDR8/fXXX3/9dWxs7OrVq+fPnx8XF+eZC9VGC+vJZ5578pnnPA9DQkK8h+6tVmu/fv2SkpLcbjdJkt6TqmiabrN5uXTpUpIkmRkMNxPWzJkz3W73888/33pzoHtpampyu90DBgzwLOnTp8+kSZMmTpzocdCUKVNaWlpIkly1apV3vw/DsJUrV7bpO88YVkhISEhISJ8+fbzHfVksFnNqDRo0iPmq27NnT1FREUmSAwcO7PEtrMDAQIfDodPpmBqePn260+mcNm2a9zphYWEIoUWLFnVY2vnz5xFCTU1N2dnZWVlZGo3mD+g+MDCQaelYLBbsJi0ssViMtSusUaNGeQ+II4SOHz/+zTfffPPNN1999dX8+fOXLl1aWlq6cuVKZuFnn302f/78b7/9lvn2altYTzzz7BPPPOu9JCUlxfMC8fHx3k955Orxazu0I6xbqjvgL4NRQ21trfdCZuiUJElmoP2JJ54gSVKj0YwfP751CfX19TRNewa8PLQ56O7BW1jBwcEOh8NsNpMkWVxc7NmrHiwsDMPkcjm6NkS1bt06n+9yFovV2NhIUVRn7jMJCQmZM2eO59uFxWK9/fbbnbki//XXXwsEAoFAMHXq1KCgIObTarPZsBuF5ZFAh8Ly7EBrCXh3CT1kZ2f7dAl//PFH3+KemPDsExNuENagQYM8vT/PtQaKokiS9G5nMpeQ2oExfWuYaTvAHch//vMfhND+/fu9F44ePdpisZhMJqZ3UFVVRdP0Bx98MN2LgQMHYhg2YMAAiqJsNlvrq+adFxZ2bVQBIfTuu+9i14TVg7uEGIa99NJLCKH6+nrmUqwPa9asQQhdvHix8wUyk5BWr17NHJrOsGfPHqbaFyxY0NXC0uv1O3bsUKlU3gtFItGOHTs6ENZ94x+9b/yjPgsnT57saZW1hqbp999/v8P3HxAQsHXrVoRQRUXFwIEDmYmC33zzDfy66R0L07hup98xYsSINueXPvPMMxiGPfXUUwghtVrdesNbEtaECRMQQg6Hg2kX9IYWFnZtgptSqZwwYYJnYf/+/WNiYhBCLS0t7UwKbQ0zs4SiqM5PZWhHWG2OYXVeWG2eM53Bc6fEdV5/c87rb7YxO2H8+PGe+5a9UalUzz33XOv122TTpk0IIZlMhmGY2WxGCH355Zed3Bb46xkzZsz48eO9L677EBQUNL4tGLP07dt3/PjxY8eObb0hi8UaP358O0O/TDmeL7Nx48Z5mvDMi44ePfpPvbc7nsDAwKysLOZTptVqFQqFUqlk2g0mk6nNDnj7fPvtt1988UXn1//qq6+KioqKioqmTJkSEBBw8eLFoqKikydPYhjG4XCYp4YNGzZ8+HDm78jISKwTwsIwLDQ0tOjWyc3NZb7AbuDV1+e8+nobwsIwjMViTZo0icfj1dfXNzU1HTx4cPr06T6DrO0zb948nU73zTffYBi2YcMGrVbrc7UbAABvXnnllaqqKmZMhiRJo9G4Zs2aNvuJvZR2hHVbgA4gANwqQUFBzJQC+Pj40tXCAgAAuG2AsAAA8BtAWAAA+A0gLAAA/AYQFgAAfsNzU2c+N3Um1n8QBALpsek3EAsK7gmZM2fOnDlzsDVp2GoIBNJD88N+bOI/e0Lmzp07d+5cbHMWBALpsVkRj01+vSfkqrB+PwWBQHpsViZhk9/sCbkqrO35EAikx2bVQez5OT0hV4W18wwEAumxWZ2CvTC3J+SqsHadg0AgPTZr0rApb/WEXBXW7kIIBNJjsya9+11zO4W19wIEAumxWXcYm/p2T8hVYe27CIFAemzWH8WmvoNNfQeb+va1P965+ZL28/YtFvJ2W/++ffN12s01YV2CQCA9NuuPYtPe6Qm5KqzIIggE0mOzIQObNq8n5JqwiiEQSI/NxuPd75rbKaz9xRAIpMdm03Fs+ryekGvCugKBQHpsNmVi0+f3hFwVFhuHQCA9Nr+d6H7XgLAgEEinAsKCQCB+ExAWBALxm4CwIBCI3wSEBYFA/CYgLAgE4jcBYUEgEL9JtwqLNWMBNuM2lTZh8rQJk6d1f4VCIJCuSzcJizVj/nuffP7l0qWfLfny7n++fxvKfGX2nFdmz+n+CoVAIF2XbhLW428vWnqNDz9bchvKfPm1N19+7c3ur1AIBNJ16SZhTZz/kUdYn3zxJQgLAoF0It0krOCZCz5b8iUjrIfnfgjCgkAgnUj3DboHzlxw1yvv9Xvx3dtToF8IK4hL9I3iB3AIz5IHD0nGHywJ5hJd9IoQSI9Kj5nW4BfC+jBf4aLou+OEniW/XGmgEbo3SRzAIV47UdF6k8eSJa+eqJhyVDYhvfT5I2UvZ1ZMPSbD2Pjc7Mp5OVWvn5S/klkx+6R83qnK2Sfl3f4GIZCuTfcJq9+L7/7jrUWjZ3/gB8JKkuvPNVpSFYZomTZSqtkn0eyRqHeVqLeL1TvE6t0l6r0STYRUwy7VJFboMmqNEoPt8VSpZ/PJR8peOFr27OGyby/U0QhNPSZ77kjZ1GOy+w6Iw4rq3TTdN4q/ME9BIzTjeLnPS39xpgYhVNXslDc7KpsdNEK8Mi3Gxg9XG10UXdnsYJaTNIqr0HX/+QSBdGm6SVj9X3p3ybVB90nzP7oNZb702psvdZmwMmtNNpJqcVMWF2V2kc1O0ugkXRSNEDI6SYPjeoxO0uQkrW7q6bTrwjqrMusdpNbuNjpJhJDG7tba3XoHufRczQ+X6l0UHcIjMDZ+vsmCa1sCb+weLi6opmg0OEaAsfFgLuEg6QipBmPjyVUGhdmJcXCMjbM4uM5O7pNquv98gkC6NN0krOcWLPZcJfx8ye24StilwgrgEIFcIoBLBHCuJ6/ejBAaGidkcQjvBHCIAC7BqIQJi3M1s0/IaYQGRAtYHJzFITAO/r8LShdF9+ERGBvvG8VncXxf+uPT1RSNhscL+/D4A6IFHmEdqzFVm50hPH4fHj+Ex9c7SJ5M2/3nEwTSpekmYT0050OPsBZ88vmdLqw2k1tvRggNiRW0s86YRLGqxSXQtZxrtOQ1mC+prQihrLrmE7UmJkKdjUIoR9mc32AubLQIdbaGFtejyRJPCV8X1tIIUfTV0AglVugxNp6jbHZTdLOL1DvczS7STdMHK/Xdfz5BIF2a7hvDemnhJ0u+XPr+p1/cnguF3Sss7wt/3hkZL8qoMfFk2s3CxlV4wyZB4zfn6/5dWPvvwtp/n6v9d2HtJmEjhdCPl5Wr8YZdJer4Cn1mremBAyWeEvpF8YO5RCCHCOISwVyibxT/5cyKj09XP51WyuIQT6eXnlVZhsYJAzhEvyh+959PEEiXpsdcJew+YQnfzJKXGOzMMFM7CeISWrv7ZF2zt93uOyCmaNQ/SoCx8YHRAtaN4gvh8QdEC/pH8ftF8ftF8ftG8fvy+JwyrcVF9Y/m9+XxH0mWpFQZHjhY0j+KPyBaEMIDZ0F6dEBYfzieFtavuIpGqNlJTUgvbb3aE6nSdIUxSqZLqTLQCLFLtbsk6p0lal6Z7t3cqhHxImZaQ98ovpuiG22uYN51Z+0Qq0kauWnkpmkXRTsp2knRFEI0Qp6HTop2UbSbpkkaccpgGAvSo9N9wpowb9EnX3z5xqLPgmYu8G9hYWz8jSw5SSOSRovyFT6rPZYsOVipP1RpoGgUI9NFyXTxFbqDlfp0heGtnMp+UXwKoX+eqHjgQAlCaOGNmw+JEYyKFw2PEw6LEw6NFYyIFyZU6B0k/Xiq1OqmkuT6e5LEw+KEw+OEI+OFf0sQ3RUr/PPvCwK5c9NNwrrvjYWeQfe5H33m98LC2PjzR8tIGtEIfXmuxmfNAA7B17XsEKtDePwijfXDG62ktLrCrzSEFdU3O8mAVlPeAzlE/2jBQ4ckW0VNJieptbuZGV73HyiptTidFH1aZV56tvbhQ5K744QgLEgPTzcJa/KCjz3C+uLLO35aQ5vxjGF5lrySWcFc0bv/gNizMJBDJFToFWZH3yj+gGiBi6IfOiQZHi98LEXKTLlKVRiKNVa1zb1Z2HTDS3DwYk2Li7raGTyjMs/LqfSepcXiEDMyylOqDAYnyXQJL6mt3X9KQSBdl24S1l2vvPflNWHNeP9jvxbWDWPtoUX1MzNumK0+LE5I0chF0TY3bXCQCKEas1Nmsov1tkExAoyNv3aigkbITdEj4n3bR+MOlrx4vHxRgWJOtvyl4+WvnqiYk105Ib00mEus4zcuPVfz6ZmajwqqF+VXf3mu5q3syhFxou4/pSCQrkv3jWENe+W9lxZ+8ve3/nV7fnT0Tmhh3SyjE0WDYgRBXCKEx3dR9NjEa+0vDo6x8WAe4aTovHpzm9vOPilHCNVYnAqzs9rspBFaUVwfzCPcNC3S25Lk+iS5PqXKgBD69HR1959PEEiXBq4S/uF0ZuIoxsaDuEQwjwjh8ftF8e9JErsoertYfajSIDXYn0iTYmz858tKikZWN9Uvis/iECPjb2glTc8o97k1J7SoPohLuCh6LaFi1hkcI0AIfZDrO94PgfS0gLD+cBhh3dWRsFKqDE7y6swD5vbD0w3m34VNiwoUQVxicUG1m0bTjskMTjJCqnkkWWIn6dGJ153FCGtIjIDFIYJ5fI+w3BS9llAxNwPdFSsEYUF6RUBYfzinlGaEkPdvxbSZ+aeqfhM0PpNeOixOyAy6jztYgrFxFocIv6KiaPRVYS3Gxqcdk1EI2Una4qKCvEbWp2eUI4SanZTJSZqcJELI08KykzSz0OSkEEIL80BYkJ4eENYfDnNj4MhWI+XtpF8Un6TRhPRSFoc4WddMI/Qr3uB59r/na10Uvb/0hh9deCNLTtHo3iTx0FjhiDiRg6TDrzQE8652CZkW1pBYIUnTjPggkJ4cENYfzn/P1/5ypWFA9C3cDRPMJVZeabg3SYyx8UAu8fpJ31/s6x/N97kt8Z4k8RtZFZ421z2J4mFxQhaHuCdR7N0bDeb6bgiB9MCAsCAQiN8EhAWBQPwmICwIBOI3AWFBIBC/CQgLAoH4TUBYEAjEbwLCgkAgfhMQFgQC8ZuAsCAQiN8EhAWBQPwmICwIBOI36THCmvTCzEkvzOz+CoVAIF2XHiOsGTNmzJgxo/srFAKBdF16jLBef33266/P7v4KhUAgXRcQFgQC8Zv0GGHNnv3a7NmvdX+FQiCQLkvA5pODXn7vhrz0nu8Sn2dfaned9jdvv+T2y2lnhZfew1577dXXXnu12ysUAoF0Xe7embO0R4C9+uo/X331n91eoRAIpOvSc4T18ssvv/zyy91eoRAIpOvSc4Q1a9asWbNmdXuFQiCQrkvPEdb06dOnT5/e7RUKgUC6Lj1HWA/9/dl7xv292ysUAoF0XXqOsB4fNuXxYVO6vUIhEEjXBYQFgUD8JiAsCATiN7l7BwgLAoH4SaCFBYFA/CYgLAgE4jcBYUEgEL8JCAsCgfhNQFgQCMRvAsKCQCB+ExAWBALxm4CwIBCI3wSEBYFA/CYgLAgE4jcBYUEgEL8JCAsCgfhN4OZnCATiN4EWFgQC8ZuAsCAQiN8EhNWFYXEIjHPDkj48fhCXYHEI74WDYwQBNy75w/l7ijSQe60oztV9eO5I2YBoQTtbjUoQzcwoD+Hxu73GIH9BAji+Z2BnMvWY7M0s+dBYYffuPAjrNmRUguiNLPn5JsuCU1Wehf2i+DqH+73cKu81n04rJWn0wMES74USgz2vwexbLAffKGhcUdzwVWHt8qKGFcX1GBv/qEBRarRfVluL1NZSo/3hQxKfrSQGm0RvD+ISGBs/p7Isu1wfyCWMTvLdG3fDJ2sIlZuiH0n2Lc2TjYLG2HLdPqmGU6o5VGl4OFkSU67bI1Hvkaj3SjSRUs3hauPoRFHrtxBXoXsyVYpx8CAuESXTrsFVbZa/4FTV6yflzx8te+5I2cTDpc+klz57uOyFo7J/nqhYkFv1yenqP/ABg/gkhMcfFCPAOHiNxfm/C0qMjfeN4t8VK7wnSfxEqvS/5+tO1Jl+vKS82earcJWdpK9/HXZTQFh/KkeqjWqbm6SRvNmxR6L+6ZKSxSEmpJViHDyEx3dR9D1JYu/17zsgphEaEiNgcfChscIhMYKB0YILTdbTKnP/aH7/aP7gGAHrWqNM53Bn1Ji2iZvy6s1Sgx1j44vyFQYHOTG97IWjMjdFD4m5od3UL4rvpunnj5ZhbLwPj3BQ9JKztRgb55Rp0xRG7zVnZpR/crr69Sz5ayflb2TJDQ6S0La8niWffVL+2kn5ayfls0/KFxUo/lNYyzTT2KVahdnxy5WGS2rraZV5eLyQpNFzh8smppdNTC/754kKhNBdrb57xx8sQQj970Id8zC2XGd0kkFtnfElBpvG7m6yuVUtLoXZWWqwSw12qcFearDXW10UjUBYfz5fnavVOdwsDtHQ4nrxeHkgl3CQtNVNNTtJnYMU6mwZNaaUKkMfXttV/dPl+hY3dUsHYuox2bEaYzsrDI8TruerDlcbVxTXD4pprxPgCQjrT2VMoiiExxfobN+cr71aoXFCB0kvzFP04fGdFH1P4lVhsThEEJe4O05IIzQ8Xjg4RuAgaRdFOymaohFFIwdJO0jaSdKeVne1xfnx6WqMjX9zvlaos2EcfOm5mjqrC2PjfaP4Tor2Ocbv51VVm51M7/K93Co7SfeL4mNsfEJ6qdlF9fEyxTcX6oo01rMqS46yuUhjpRE6Xms6UWfKUTbn1ZvPqMznmyzFGmtho4UR1laR+pzKwuIQTTb35CNlQ2OFboruwyMCOEQAh/hbghgh1DfKt0dZ2GjR2d2e7+ThcUIXRb+fp2hdjSwOzuLgPt1nJh8VKOwkjYGw/nS+OFNT1ezAOHhDi2vW8fJALtHipsYdLAngEKxWNf9IsmROlvzF4xVTjsomHymbeLhsk6DJTtIT08ueO1w25ahsZkb5G1nyZ9JLb/ZyARxCrLcZHOTNHPdkqtRJ0uUmB0+mVbW4rG5qTOtGequAsG5D+FrbN+frPA//e762zursH3WDsCYeLnWQtI2kEUJOiv7+knJgNL9/NL9fFP9UffPpBnPfKH5IFL9/NN/zuVWYHR8XVGMc/NsLdYyw0hTGMyoLxjSmKPrRZInnGLM4eJ3FdUrZzJwrVc2OfVLNtaeIOqvrx8tttPYDOITMaP9d2NT+G2SENSxOaHKSQVzirlghjZDS6lRaXUqrq6HF1VpYzx4uoxGadbzce+FmYaPVTfmMg6wort9dot4ibFpDqJYX1/94Sfn9xbrvLyo3CRofPFRyTVjdcFh7WBYXVMtN14UVwCGsbur+A2KMg2McnMUh+kXxR8ZfPZ3+U1irs7tVLa5ai7Oy2WFyki1uCiFE0Uje7KixOBtaXFq7e5OwsfULPZEq3cBvVNvcCCGDg2xtQ4yNYxxcYXZWmBwBXAJj4315fI3dfbKuucN30euEtaigWqizeb4Zxh0sEepsiwoU0zPKhTrb2zmVzPKhsUKBzrbiSsODB0uEOtv/Xbzqo5Ao/hVNy/4yLcbGXzxeXmq0FzZaTE5SYrCL9LZ1fBXGxgO5RB8e/2oL61qXsA+P/7cE0dgkMYXQw4ck3o2jLGVzfoO59WdSYXY0u0iN3W1xUUKd7a2cSpJGzx8pw9h4MI/faHM5KVptczMnxOsn5QghRljv5yrsJD3Qa6B98pEykvbVB3NeUjTilmkjSzWRpZqYcl2qwnBOZRHrbd7XAX4Xqc+pLD9dUkZKNUzluCna07kblSDyEVYIj6+1u8+qzNiNVx6CuEStxVltdg6Ivr7yDnFTSpUhtlwXUarZKm7aImzaI9HwZNqUKsM/UiQgrNuVD/IUDooW6Wxuiq62OH+4pLS6Ka3d7aToOqtTaXU5KTqz1tR6QxaH0NjdEVKNg6Rb3NTdcR2Mu3+Yr8hRNucom5ts7psJK5hLuCh68elqz5LdJWoXRQffpEPqSVgbnqcAACAASURBVK8TVgCHEOhsOoe7bxQ/kEtUW5x8XQvTaj1R12wn6btihSwOcVljVVqdwVwCY+MRUg1Fo3uTxBgbT1UYTE6SccHIeNGLx8unZ8hcFL1N3PTS8fInUqWTDpeeqDMFcAgfYTEZEC2gaDQkVhDAIbKVzenVhjSFscnmUtvcWcrm843WCV5tbIXZwYw3/+9CnVBnC+IS3s8GcolgLp/RyrA4odVN5debTymbB8cILC4qR9m85GzNe7lV83KqPsirWlxQjWtbSBp9XHD9FHnwUImLou0kPe2YbKpXYst1PqMVTAsrt978r3wFxsbvihWSNHonp+qt7Mq3sisX5VcjhDzncQCHyFE2t7ipwTECjI2/k1NZrGl57kgZ8+y9SWInRTfZ3I/efIzf8znBPF1CNnQJ/2z+fa622ux8Kk36VJp04uHS+w+IrW5qZka51U0FcAiMg1c2O8KK6ltvODOjvN7q+uFifYubSq4yrOe3feWkdY5UG2/WJRx3sAQh9I8UqWfJ4oJqikYDOxrJ6nXCwtj48DihnaQTKvS7StTePZT+UXydw31OZfn2fJ2Loh84cPVaXhCXqDI75SbHW9mVFI0mX/vseSoaIRR6uf6VzAqMjYfw+BY3tYHf2KawBkYLaITeza3aJ9WEXq53UPSvuOrD/KoP86v2l2psbsp7TFpjd18bw6oT6mwbBI06h1tpddW3uIxO0kZSOoc7mMvH2PhXhbW4tuWHS3W59c3FmpbKZsf3F5VKq8vsovIbzPkNZhdFf11Yl6NsnnZMxhQ+Kl5kdlFSg91O0o8kSx45JLn67yHJPqmmyeb23m2mhXVXrMDiogbHCIbGCikafXdRaXFR6/mNK4sbuGVaRliMiGmEXjtZgbFxFgeXGux6B+nd3Jt6TEbR6LLa6hnfTVMYFGaHzGQX620iva3UaK+1OFOrDNj1Mazu/8D7e1YWN5SbHNi14cJALmEn6cdSJHaSCuYRwTzCTdOe08OTQA5RbXYuzFN8d1HZ4qaePVzW4qY61AqTw1eF1cZTT6eVIoQeSb5+uXxeThWF0GAQVpt5M0tOI0Qj9HJmhffyp9KkzPLPz9R4Lx+bKHbTNEWjdTd+vfTh8XV2ssrsXFncYHFRE9NLMTa+ME/x0CEJI6x7k8SjE0QBHGJEvGibWK0wOxBC8mbHsiIlxsbPqiyHKg1MURKD3TPqhLFxFodocVPHa03bxer8BrNQZxuZIKqxOBfmKUbEC0fGC6uaHVEynWf9EB7/+4t1p5TNd8cJRyaIMDaeUmWIr9AxRZmc5PxTVZ7vukeTJWYXFSPTLS+qp2hUYrB5R21zN7a4vN8m08LC2HiOsnnZ5fqhsUI3TYdE8WUm+yuZFYNjBBq72zNz4m8Jov8UXr0E8cKRMhqh1h+D546U9fPqQqYrDLn1zWMSxZ6ca7QwO3+thdX9H3h/zw5xk42kyox2pdW5TdwUxCVcFD0yXqgwO8ckiu9LEjspOrjVXLw1uEre7AjgEIywAjhEhcmRpWzuzGWQIzcX1lNXhXW9lT3/VBWF0BAQVpsZES9yUTSFkE/HpH8U3+KmEEIv3jjcE8QlmEHET28UWbRMd0Cu5+ts35yv+yCvanSi6On00kX51ev5quy6ZhohG0nZSGr8wZJHkiUGB/nLlQYaoSGxV4/KtGMyZrDptRNyO0kP8xodCOISdpLeI9F8XVh3qNIg1NkwNv4rrjqjsmAcfHSCyE3Rw28cTWCE5XmoMDu+u1iHsfEADmFxUc95NQyHxgr3S7UBHCKsSNn6WvVGQePNhJXfYE6pMniE9ZugMbXKqGpx7RCrW48+BHEJlc11oFJ/7RyVFjZa2pzIc6jKcPzG0ZPc+uZomRYDYd2+JMr1efVmjIMnyvW/i5pGxotohAbFCDYKGlfjqu8uKkv0Np9N5mRVOih63MESjI17hPXwIQlJo9hyXYdzstoR1n0HShBCT6Re7xJ+dqaaotHAdmc4Y73z5mcWhxDrbRKDvVjT0tDi8p7hfaLWpGpxHak2Mn0fz/I9Eo3ZRe2TalwU7bkw90GeosVN3RUr9FwlfO1kRbXZkVJlWF7cMP9UpYuixx0sYY5rIJcI5BJXx7A8JXNwebMjVWGwk/RX11olTJhpXMxrMV1CjIMPiBY4KXp6hqygwcwu1fq8L29hMZsz1xYCuYTNTT/udXJ4ElZUT9Iou67ZO/JmR2thXVZb4yv0FI0+OV3tEdboBBFFo7ezK9vssrFLtY0trj7XqveuWIGDpLeL1a3XPFRl4Otsn56p9qTEYIuR6TDoEt6+5DeYj1QbMTaeKNdtETW9nFnR7CJZHGJ4nNDoJA1O8q3sSu/1F+UrSBotKlAEcYlALvHDxXqbmwrmEkFc4tMz1TRC8mbH9FZtZ++0I6xALuGk6K/PXz/no2Q6p9eVnJul57SwZs+ePXv27M4cubCiBhdFj00UD48XOik6oeJqE+C93CqKRs+kl/aP4puc5BmVhWl6PH9URtHozSx5EJeos7hkRgfjoPfzFB/kKjCvaQ3ex4bpEo67cVL7gGiBT7t3ylEZQqjUaPc5VA8nSyiEmKtp3zDTGtg4xsa/OFvjppHRSbae9/TjJaVHWG9lV7opmtmcOTlaT4vH2HhYkdJO0o+lSB9NlngSIdX4CGtnifqcyhJdrvvxkpKZ8uqmUUgUf3SiKFvZLNbbWw9qvJNT6aLoh5gXZaqFg397oY5G6NnDZT4rH6k2VpudkVKNJ0qrK8V7DKu7P+09IJXNjk2CJoyNH6rUbxer1xCqYk0L81SRxmp2XT+jWBw8vkJPI7RJ0Dgvp8pB0jY37SRphFCLm7aTNLdMOydb7qTo843Wdu4q8xEWi0NMOlz2VNrVL06R3qa2uZnmwuAYQbOLOnBteKSd9DphPZwsoWj0w6Wr0xS+OFtDI/TqiYoR8SIHRe+TXB1FejGznEbo34W1/aMFRid5otbEfOoeTZFQCG0R3TBxSWqwh7a6vMII6+m0G2bWMe1wRlgsDvFBnsJO0vtLtSYnqXeQP1+uHxkvYsy17HJ9ndXJbPXzZSUjrGAekSTXuyjaQdLr+I0j4kXevblfrjQwwgrkErUWJ/OBx9j4sDghjZDP8L9nk9ZdQm6ZVnWjsCKkGqZLyGRMopiiUUGDuaDB3C+KrzA7LS4qrKjec8Y/eEjipmg7SSvMDmbCjtFJGhyk3kHaSVprd/v0H0uNdp8u4T8zK17KrMDY+OdnauAq4Z8PMyzw6okKjI0fqzFyyrSNLa73c6sCOMRWcZPJSYr0thqL89FkCXMyPHxIspZQYRyiXxT/bwmiu+OFq3GVnaSHxwtHJYiGxgkxNj4sVtj+GLnPVcI+PL6LoqvMTuajdF+SuNlJGhyk1Gi3uKkmm7vDEXesFwrrjSz54oLq618LHPzDfMUHeYoZGbKPT1d735cw/1TVRwXVE9JLPzld7T1v6PUs+cenq70/ctUWZ+u5l0ynbFbG1bEwFocgtC12knZT9IBowXu5VZXNDrOLejmzHGPjA6P5hyoNJI1ohL6/qGRxcIXZGSHVBHGJ800WJ0XnKs1vZslVLa7GFtdDh0omHi7V2N00QjUWp+e97JVoTimbWRw8tlznZEa4OPjhamOd1Xmze2J2iJta3JTnOzCQS0iNdpJGZ730hLHxaJnOW1icMi1Jo90lmv7RfIyN943iJ8n1VjflEVYglxDqbNEy3aICxfNHy+4/UNKHx2dxCBYHfyNL7iDpGRk3dCXGHSwZ28qnE9NLLzZZLS5KY3e33nPILeXJVKmLopl74Fkc/D+FtVq7e3SiSGa0q23uvyWIArkEt0xL0WhzW3NBMTa+RdjoIDvusnnnxePlH+Zfv7EhgEN8fLp6gddtrSE8/tzsyp8v1b92oqKTJfc6YXVFvi6snX1C7rMwhMc/Udc85ej1T+aXZ2u/LqwdFivE2PjweNFuidqnWzciXrSe38hcPvt7iuRvCSKMjb+dUzkpvSyQS6whVD9eUnqOayCXWHCq6psL12fYx1XoOGXaPjwiXWFkPIix8R8vKcOvNIyIb/umhzlZ8v95lYCx8dDL9a+drPAZT511vPzNrOtv8Km00tYjYp28FyyIS3Q4sMrkrljhZbU1o8bk6URA/ng4+JKz168XDY8TzTpejnHw7y4ovS/XPpkq7ddqqIHJGkJ1RdtyS8LqioCwIBCI3wSEBYFA/CYgLAgE4jcBYUEgEL8JCAsCgfhNQFgQCMRv0nNuzQFhQSA9PtDCgkAgfhMQFgQC8ZuAsCAQiN8EhAWBQPwmICwIBOI3AWFBIBC/SU8TFotDQCCQnprhPUxYJgAAei6lpaXdrZrbAwgLAHo+ICwAAPwGEBYAAH4DCAsAAL8BhAUAgN8AwgIAwG8AYQEA4DeAsAAA8BtAWAAA+A0gLAAA/AYQFgAAfgMICwAAvwGEBQCA3wDCAgDAbwBhAe2hMRh1xrafatTf5ImuxGgyGf76VwXuGEBYPZ/SRr3aYNQbTW1GZzQpNIYaTdseeDWjrA+PuKLUtl4eyCXEDboOX/2wTPVJbkVRnYZ5WNGkf/ukjCdWdrihxmCce0J2vkbjvbBEpRuTIFxxQVGnBXH1RkBYPRyDydSHS2AcnMUhArlEEJcI5hJ9uEQwlwjiEgEcgsXBMTa+jajz2ZBpPk07Ih1/QNy6KRUnqcfY+GvHyzrcgUOlDRgHV+qu+qWiSY9x8MIadevX8qFJb/xbvDCERxBeuvzwVDnGwX+/UtsNrTvgDgCE1fMZEM1/JrWkrFHfZvj1WoyNs4W+TZ7d/LphsYJgLtGXRwyPE9wVI/jlYrVHE3qjaUNRTYnqegvL81R5k74PjxgczR8WKxgeJ7grlo+x8ZHxAiYj4gQYG787VjA8TjAsVjAkht8vij8vS9bmnsua9CE8YuoRKVN4jcYQxCXmnWx7ZaA3AMLq+QyNETyXLrnZsyqdEWPjbJGvsA6VNvSP4p+QN56UN52UNw2O5q++XD04mj80VjAmQXh/oujBA6IHD4juTxKNTRDeHSscGM1nRrs0BuNphfqKUitu0JU16uIl9Rgbl6h0CrVeodbjSi3GwbPkjWWNuhKVjqjXnqvWXK69od+n1BpEDTp5k16lN16s1aj0xia9sUlvXJIvHxUnrNMamvTGKrW+oknfBbUF3NGAsHo+Q2MEDySJfr9S22Y2FNVgbDxC4Cuso+WNg6L5OqMpr6rJZDINjRXs4te9fVL2SV7Fd+eqQs8rwi9Vh1+qDr2g+P5c1ef58rdPytochS+q0yzJr1Qbrj5XrzN8kV8pbdQ16Y2XajV4q9Exk8mUUqbC2DjGwVlXQ3j9e/UPjI1/ni+/zTUF3PGAsHo+Q2MEfaP4Dx8Ut85DB8XjkkT3JYp2thrDYoRVpzX04RFGk2lorGBfK6ndDIPRFFNSv5tft/lK7a+Xq386r/j6TOWneRULssofPST+W7xwcAw/gENgHHxAFF/Zavg8q7IJ4+C4UtuoNzJ5PFk8Mk6ouvawQWccEM0HYfVCQFg9n6Exwna6hAxGk+mjU+WedpDJS1h9eXy1wegRVpVaHylUJpc25FQ2pclUbJHybLW6dYHTjkhHxwsfPCB+Nl0y+3jZolMV/ztbtb6oJkHSkClvOletya9qqlDrq9R6VauGWXZlE9OL9Cx5MqVkVJzQ89BgNA2IAmH1RkBYPZ9R8cIJqRKD0WQwmQzGNqIzmsIvVmNs/MOccmYTo8l0tFw1KJpvNJmYCQ8eYZ2vUWNsPJBLBHKJQA6BsfH9wvo2X1dvNGVXNjEO1BpN7+eUv3Ss1Hit/BFxgmfTJE1tdSMZYf0tXjg24WqCuUQAh/A8HJsgZHGgS9gbAWH1fF46Vopx8P5R/AHR/P5R/H5R/H5R/L48fl8eEcIjQnhEEJfA2PjIOKFnctPcE7JB0XwWhxifJGISwCGuCUsTwCE0BqOJmaPAxg/LGtt83QKFGmPjSdIG5uHUI9L+UfxqjcFkMm0oqmFxiAs3zrHywAjrXI26Um1g8vdD4uFxAs/DiiZ9f2hh9UpAWD0fg9FUotKdr9Gcr9FcrNVcqtVcrtMU1Wmv1GnjJQ2HZaoLNRqJSufd1okUKr8skPeP4mfKG5kMiuYzwrpQow7kEEyzixHWSXlTm6/boDOOjBOsuVzDPMSVmvImPdOm+8/pyv+errzZDnfcJTRBl7CX0nOE9eKLL7744ovdXZ9+xkvHSgO5RJuzxlPLVENiBDqj6Wi5Sm80DY0V7BUoTSZTXlVTILc9YdXrDCfljWeq1VeUWlGDrqxRJ2/S12oNH+aUB3GJao2hvFEvbtBdUWou1mpOK9TZlY05lTeUcKy8kemfLsmXM7k7VtAviu95+EW+PIhLgLB6IT1HWHPnzp07d2531+cdxKaimlHxgidTSp5Nk0w9LJ1+pI2MiBOwOPgLhyWT0iRPJJcMjxNUX7tHJ0naMCxWoNIZg7hEg844NObqGFaCpCGYS2hvLqzzNWqMgwdwiAHR/OFxgrEJwvEHxCwOcVeMgMUhQnjEA0micUmiexNFoxOEw+OEg2P4Dx8Ue5dwrkb91elK7zDCWlpQubSgckm+/LM8+dsnZb9fqf2LqhK4YwBh9VhiS+rfPCFbkF3+r1MVn+XLv7jWPPHOQwfFARxicW7FwpzyeSfL38iUKbVXe4bbidqR8cJ6nSGISyi1168S/nJR0S+Kz/QfmftsfIRlMJnUBqOnzWY0mf57pvK5dMn35xQDovgxJfVPpZR4X47sDD5dQqDXAsLqFSRIGx48ICpr9L1X+b1sWfC1/p0PX52W358katQbP8+TN+qvt7CeSikZESdgfOPdwpKq2rgRWmc0fXiqYkiMoEZj+OGcYkAUX280PXRQ/GRKSUNbvwKxoahmeKxgTILwgSTRQwdFjxwUPXZI/I9kcb8oIohL/CNZ/Ngh8SMHRQ8dFI87IBqbIBwRJ+jM/YxAjwGE1Ss4W63G2Pg7re7Ca0dYz6dLnk27PnuLEZZab+wbRSy5NnjkEVa9zhDCIyJuvCGRUGrvTxL1i+KLG7Qmk4kRlslkUmgMd8UI+kfxt+K1Kr3R21tR4vrXj5fNy5ItOlXxWV7FlwXy/56p/OFc1cg4Qb8o/g/nFN+cqVxaIP88X744t2JBVvkbmbJvz1bdjhoC/AMQVm/hnkThvYkizY19sflZjLB8Gzs6oymER6y8WG0ymQT12n8XyDEOHiWuX3+5BmPjnvtp5E165raeCIESY+PJZSpmeUWTfn6WjMUh7kkQeu748wjLZDIp1PpHDooxNh7EJYbFCgpvMr/Bw5MpJQOi+X+uAoCeAAirtyDz+sG9ao3h50LFv3IqQnhEMK8NYWWUN2Js/FKtxmQyqXTGwTH8hTnlV+q0QVzihXSpZ7VarSGAQ2BsHGPjg6L5WoPRZDLpjaZZx0oDOMSSfLn3WNVHpyr68gjPQ4PJlFyqGpckejqlpMMBrSdTSkJ4BPwCFgDC6o1oDMY+PCKQQ4TwiA3FNa1XaNQbH0++PjTOTJ5amFM+JIbv81N//HptdmVTgUJdr7u+3GAyCep972p+I7MsiEtojb526oyGHj4oDuYSN/vtU6D3AMLqpdTrjCqdUXtzBbRphwbdH2/laAzGNm/E6QynqtQn5E3gKwCEBQCA3wDCAgDAbwBhAQDgN4CwAADwG0BYAAD4DSAsAAD8BhAWAAB+AwgLAAC/AYQFAIDfAMICAMBvAGEBAOA3gLAAAPAbQFgAAPgNICxTc3Pzba9W4Fa57UfhDjysveE9djU9TVgIAICeS11dXXer5vYAwgKAng8ICwAAvwGEBQCA3wDCAgDAbwBhAQDgN4CwAADwG0BYAAD4DSAsAAD8BhAWAAB+AwgLAAC/AYR1HQohvR0VN6GdAvTOcTQuFvXdh1i7UdAeNIaHZqahFRdQdi1SWpCLul31DwDALQDCuorOjhLL0PwT6P5oFLIXYbsRtss3gXvQcA6alorWFyOZAdG38TgAANAJQFjIQaIz9ej1Y6h/BGK15anWCd6DHolH+8XI4LjtRwQAgJvS24VlsKOtBHogplOe8snACPRZLiqDphYA/FX0amEZHejnQjSGh/rs+SPCwnah4L3oxXREqMFZAPBX0KuFJdHRoefpKAn53VnqsXh66H66k11CbOe17EIBu9GsdFSi66IDBADAdXqvsFwU3ewktTbS7CQbraRATabLqW9P0wMj2lNV0B50N5t+Jt4++4BxRnzz+N2NA3aYA3ejeZmo3tJ1hwkAAIR6rbBIGlndlNlJ+kSiIx+Nb1tVIXvRk4nUsmxjTn6J7FhmTXoqkXp4xfod09dkBux0949AG64gB9mlBwsAejvV1dXv3nm8//77ixcv/vLLL7tEWEYHyqml68yk0UGanaTBQerspMpKyo3k/hJyFLcNW43i0MvzLfnpOcq9OzSH4tXFRUpZOS4o2cE78NzvV7BdFLYLjY9FxU1dfbwAoFdzZ7awlixZ8vHHH8+bN2/RokWd3KSzwqJpdKgCjY1Ci3OovSKyQElu55M/FVLvn6RfOUz3j/CdgRW8Bz2X5DqQK6tm75Ps+E0lFqs0+vJa1eWSijO4dGuuYnik6+osrd3o29PIeStzSt1uN0leb5XZbDa32/0HjmIncTqdFNVVc16tVmtLS0sXFQ4ADHemsDz861//+vDDDzuzZmeFZbCjhVlX51v130ffF0UP2Hdt+tVO34bV3fvpr47q82JSpVvWN+RmN9SrqhrUfJmikF96BpfwzlQ+Gd2C7UKs3ejpJPq7M9R+MW1x3ULtFxcXr1q1qr6+nnmYmJi4cuVKiqIUCoVWq/VZ2eVyKZXKffv2iUQihJDRaDSZTM3NzWaz2Ww2Nzc3W61Wz8o2m628vNynhP379+/cuZOmfS9pekvzZlAU5bOhxWL55ZdfHI6rU9EyMjLWrl1LURSO4x2/cwD4Q9zhwlq6dOl77733xRdfdLhaZ4VFqNH4Tsy6CtyNnoxzRhwR87dsLt+/WyUrVzbpSqrqLgjLCi4LT5y7sitP/kR0S8BuGtuFHomjC+pIvZ00OSkXdQszHH777beCggLPw7S0tJ07dyKEeDzehg0bPK0hl8v1+++/L1++fNmyZUlJSSUlJU6nMzQ0NCIiYv/+/Ww2e//+/WFhYXK53FNUXl7esmXL4uPjKYoiSZJRUnR0dHR0tM8+kCS5cuXKFStWrF+/ftOmTb/99ttvv/22efPmzZs3//bbb5s2bdqwYcMvv/wSGhra1NTk2c+oqKioqKhly5bFxMRERUWlpKRkZmbu2LHD5XKtWbOmsLCw85UAAJ3nzhfWl19++e6773a4WmeFtUeI+u3rwFaDItGHacYsTnLpb2tqsk82NDSV16qKSirOEtKCImHKaf5/D9fdw3Z41h/LQzwJKTeSpXpSrKM6qaz6+vq1a9eSJKnRaJjGy/Hjx/fu3YsQstvtTU1NNTU1HmcplUqXy7V+/XqpVIoQoigqLCzMu0n166+/1tbWepcvk8nCw8OtVmtaWtrGjRtpmo6NjWWERdN0Q0MDsxpN0wRBCIVCqVRaXl5eWVkZExOzfPny6urqmmvIZDKBQODp8alUqoaGhvr6+rCwMLVa3dDQoFKpsrKydu/ezZxSRqOxU1UAALfInS+spUuXvv322x2u01lhzc9s+z5BJgG70P1c9+Z0KbF+bd3+XQ3yyuoGNVGmOMcvPYtL8q5IIwqqpsSZQ/ZQN2y4Gw2KRE8l0X9PoKemIGsneoU0TW/btq2qqoqm6XXr1nE4HLvdnpGRsXnz5tjY2HXr1q1du3bLli02m82zPkJow4YNpaWlFEW1Kazq6mqfV3E6nQihjIyM33//HSEUGxu7f//+zMzMX3/9lZFLm6Smpq5YsaJ1z5EhJiYmOjo6KSkpOTk5NDT08OHDR44cOXLkyJ49e9atW5eSkpKYmMjj8RISEjquBQC4RfxCWG+99VaH63RWWI/FUQG7adYumnENayd1917b6N26PrvJvnvpN+L1Rznpit/WlB1JUzY0SqqUF4SyM7jkNC5JvlC+5Kh61H5X+xNKh7GRsRM3GObn5+/cuVOpVJ48eXLNmjWRkZErV65ctWrVli1bamtrPZ5isNvtK1asWLt2bWho6KpVq8LCwpguYXR0dPw1wsLCKioqmPUrKyu3bdumUqmYh3l5eZs2bcrOzg4PDw8LC8vIyEhMTIyMjLzZvnmE1dzc3PrZoqIiqVQql8v5fL5IJKq7Rk5OzoYNGxQKRXl5uUAgKC4u7rgWAOAW6XXC+iFNuuRg2YeJFXPjamZxaxeG52/fmf7y4u9fjChblqo4vWGLLHJ3fYmkTFFXJKk4R0jP4JKc4tINp2omxFj77Kbas9W1maU6e8f1vnPnzr1796ampi5fvryxsdFqtVIUVVxcvGnTJoQQSZI1NTX5+fmXL19m1ne73S0tLcuWLSspKXG73RRFXblypaSkpKysTCaTSaVSPp+v012dbt/S0pKQkLBs2bJLly4dPnz4119/DQsLO3jw4N69e5kuYUpKCo/Hu9m+paSkrFixorGxMTQ0NCsry+dZkiQbGxtNJtPu3bszMjLsdntLS4tWq62srAwPD0cIZWRkyGSyjqsAAG6dXiesrbGpW2PTtsen70o6mrJtv+CjLwR7Iz76+LMtnKTkw1nHkg+LSiv4MsU5fukZXFJwRRp3ruK9VN2QCHfnbzDU2jrcC8QMTqWnpx89ehQhZLPZ1Gp1bm7usmXL1qxZs3r16m3btqWnp3saTQih3Nzcn3/+Gcdxu91eW1t7/vz5y5cv4zjO5/OLioouXrxIEIT3S5SWlhYXF0dHR6ekpHi6hIywEhMT4+Pjb7ZvnhYWn88PDQ2NjIz0voxoNpu3bt26bt26NWvWbN++fdu2bVu3bo2KimppaQkLCyNJMjw8/NKlSx1XAQDcZL2YDgAAIABJREFUOr1OWGujDq/nJW/kHdoel16waQf+yhv8Dz85uYe9Nz5ta1x6xtmiC8KyM4TkDC45dVm08rjiYZ4teDfdeVuxdneqhYUQqqysXL9+PeOCs2fPrl+//siRI6GhocyEBqFQyIxAMdjt9lWrVv36669sNnvbtm1isTg1NTUzM3Pt2rXbt2/PzMxMS0s7ceKEd/kGg4H5o7Cw0EdYkZGRhw4dutmOeY9hVVRUhIaGbt++3dtZdrt99erVFoslIiJCoVAwC91u9/Lly2tra3/55Zeum+0F9HJ6nbBeiNVN2qeYv794ZWxOXNKx1B/D439atXNP9M6EwwezzuYXi8/gktNXSo4VXNrCPfTa5rx7tmunRCrHbasO6kR/ENuFBkd26keyJBIJM+0gNjZ2y5YtlZWVzPI1a9YQBFFTU7Ns2TKm8YUQomk6MjIyMTFx/fr1JSUlW7ZsaWlpoWmaGbmPj49n/vYun9EH00DzFlZUVNSOHTuWLVvWTq/NZ9Cdz+czJmIeOp3OjRs3pqam8vn8VatWHT169Pjx4xKJBCG0efPmbdu2HTlypOP3DwB/iF4nrBfTEWsXeiDKve1IScaOXdFJh3clHo0/nn+iED99peQMLsm5wOemnlixlf3tr9tX/bAudfnOiK17py7835i9hs4I68E4ZO7EVcKWlpaYmJhLly41Nja6XC6PHTIzMzdu3Lhy5UrvwaOCgoLly5dbrdYNGzZIpVKapp1O5y+//BIeHh4aGhoWFhYeHr5y5Uq1Wu3ZRCwWL1u2jBm8P3fuHCOsmJgYDodTW1trMplcrpvuJTOG5W1Anynsubm5ly9fLikpWb16tVQqNRqNzAT9wsLC0NBQmO8OdB29TljRZ1TfRPKPH7sg2b29Mj+PkFTkXxYzqsq+LEk4cW7N3rj/rdn5za/blv26Peuz/0g+WHyOzXv3h80j9xg70x+cfRTZO30LNE3TJpPp0qVLTAsFISQQCH7++Wemv+bpEtrtdmZ8ihEWs9Bqtdrt9q1bt8bFxTEj394dsYiICEZSyKuFdfbs2fPnzzMLk5KSsrOz29yr9qc1UBTldDptNltzc/PatWtzcnI8vdHo6Ohly5Y1Njbq9fouvccI6LX0OmHZamsU8VEVSfGluKBYKj9LSHOLpYfOl2/NrZlzQDNhp+yFTedmbzj+8dqosI374v8v7Phb7+/7bvPT+9QBnRjJCt6Lwi+hzkwcZaZZrlq1Kjw8PCkpSa1WO53O+Pj4FStWnDx5cvny5QqFgiCIyMhIbw2tWbNGLBaja9OyEEJMl5D529MxdDgcoaGhHh8VFhZu3LiRubeGpmmKoux2+8qVK/fs2dPmvrUvrNLS0tDQ0JUrV27dunXFihWnTp1SKBQWiyU1NXXfvn2FhYVbtmw5duwYm83uuBYA4BbpdcIi7XZliZQQywoFpblXpPHn5P9K09zPcQzZ5w7YhbBddMAuss9Ox93b1NM3nfl8De/7FZuXrtp37+/V2K6OhXU3B52q7XAXEEJIKBSePn3abrczXsjPz1++fHlERATTn8rOzl62bFl4ePj27du9t1q+fHlxcbHFYlmxYkV4ePiGDRuWL18eHh6+fv165vaakpIShBBzda+uro7Zqry8PDQ0dPny5SuuERYWtmHDBu95p94kJye3Iyy322232xmNrl69WqlUOhyOyMjIjRs3Mt3MiIgI5mpmpyoCAG6FXicsmkYqjeE0Xso5U/lpuuYBjv1mTaeAXeSIbU1TNp1buDZ+4m9FrJ0dD7rPzejUrNHWmEwmn3uV6+vrd+/e7bl9DyFEUdTevXuFQiFN02az2Wq1Mj+QYLuG1Wr1dMRaWlq8r+s5HA6LxWI0Gpl7pD2ibJPk5OSIiIh2VvAQGRmpUqlIkjx27JinA0vTdGlpaWc2B4BbpdcJCyHUYnccyD73eqSg7+52p63vQtguFLiLHLDD3Gen/UaXocBdiHXjmkP3o2MK+HF3AOhCeqOwEEJnShtejpSG7HJ0KCyf3LUfTUmml+TRP56jFmdTTyehfnsRtgsF7UGf56JmZ8cvDQDAH6aXCsvkRF8V0H323pqtHo5DnBJKbiT1dtLkIDU2UqyjVl+mRnHpCQcQoe74dQEA+DP0UmEhhOQmNPsYCmz3P/gK3o3670PBexC2Cz0QjY5WUSaH78/Aa1tIroTOqe3UxUEAAP4MvVdYCCGxDs0+2pazdqKA3WjSQXrtZYpbQm0opmam0WsvU3q7r63MTtLqouwkDDEDwF9BrxYWjVCZAb1/Eg2IQNguNGAfeiIBzUhDf09Arx2h+WrS6CCbnaTJQVYayepmsrmVrVrclBtcBQB/Fb1aWAyNLWgLjiYfQhuLaamebLCQUh0pM7TRmPKOxUna3TQJtgKAvxAQFkIIOSlUb0VmJ211deApRlU2aFgBQHcAwroBkkZOiraTlNVFWVzX/6dVi4uyuiibm3aQNEnDZCsA6B5AWB1AI9ATANwpgLAAAPAbQFgAAPgNICwAAPwGEBYAAH4DCAsAAL8BhAUAgN8AwgIAwG8AYQEA4DeAsAAA8BtAWAAA+A0gLAAA/AYQFgAAfgMICwAAvwGEBQCA3wDCAgDAbwBhAQDgN4CwAADwG0BYAAD4DSAsAAD8BhAWAAB+AwgLAAC/AYR1AyRNG+zOwrqmbZckS0+cn5+WPzetYMHZ0i/wmnVlqkyVqd7mdFHwXxICQPcAwrqK3U2K1YYIomzxsbOTeMcejkh7YE/KfbuT741If/BI8SPZkr/nSCbmlS64WPWbrPGMxmJykbfxMAAA0Blqamo+/NeiOzzvzJvfhcKiEaozWX6/JJ4Rf2IcIynvRKSPP1r8UFYJk4ezSh7JlkzOL/teWFest8L//wwAfyV1dXVf3vF0YQvLSVIFNap3UvMe3Jt6r4+q2hKWJ49kS2aelnEVWiM0tQDgr6JXdwkdJJVYUvV8zPH79qS0baubC4vJk6ek4ZIGtcPdRYcH+P/27jQqijNf/DgqE2cyTnTOvJh5gbhPMInJeEMm5iaAxgWNJGpcMgYXrIK5597/q3sP1dAgjihxiRqFRBxRMXFUcI8roKISdZKoMYkgggs2Cmg0CCg0a9f5v6jYtqxtIuCv+X5OvYDushuK5Hue5+mqbsBRxw2Wtab2s+8vea/b3WSqYpN7xiZ7Nhsso1mRNAtoEx00WLU22+c5lpfX7q6/YvWIIyxjey41M/p8YVkNc0OgdXXQYF2+UzY26aBnXEu1+mmEdar5YPU/cM778Pld1+/UsgQPtKaOGCxrTW3EkdO9m1m3qj/COtX/wLlnU869kJo1MCWzqWa9e/Ly1fKq1v6DAR1ZhwuWTdcP5xUOXvO5U7UyzsPadWrMFxdXXLy5r6hkk+XH//nGMigtq2GwBqZmLcu9UV3XBn81oIPqcMG6W1Xzvwe/6uXk8Co22XPljglHMs+WlGeXWbdeKz72Q9n1iuoF2UUDUxsZag07lpN7t7IN/mwurKamJj4+vqCgwPj27NmzMTExVVVVFRUV7fuD4UnQ4YJ15U6Z/+ZUZ4dXscmj/rX/2PVbR38om3TykldK5l8PZydc/uFcScXIjJx+DYL14sGsnQV3HukPUFlZWV5eXlfXdgOz2tra8iZUVT3ylLaurq68vNzW2Am0iYmJn3322Z49e1JSUlJTU9PS0g4ePJiWlpaampqSkrJ///4tW7YkJCRcvXrV2N9iseTk5OTm5ppMpgsXLuTm5mZnZ585cyY6Orq6ujoqKurChQu/9JeHcB0uWNsv5A1ctd3JWr24avuGjK9SLDeHH8sZcL9KIzNys0utIaev9t9fP1jPpmSaz11/pNPfo6OjQ0NDMzIyfsEf8dHk5OSY7tM0LTQ01P5tUlLSoz5afn6+pml3795teFdCQsKqVasSEhISExM//fTT5cuXa5r2r3/9a+N9iYmJq1atunLlirF/RkZGcnLytm3bNE3bunVrcnLy1q1bz549O3/+fF3Xv/3227179/7C3x3Sdbhg/d/Br52cD3rEJk/ZuDft69OBGeffPJajnr76QlpmvwPnxp24lFNmnfl1XmNL75njT16qcPrFwoKCAk3TFi1aNH/+/EYHKa3BZrNV3/fRRx+ZzebKykrj29raRz4zo5lg1fPFF19omtbUU1y/ft1isVy/fv369ethYWH5+fk3bty4ceNGRkbGvHnzCgsLjR3swzF0TB0uWMM2HHByeOURmxyUtD/p+FfTvjh/4va9oz+UvXwoa8jh7L2FJaeL772RfqHR1wpfPZxd6vQJWevWrYuOjr58+bKmabdv33a8q6qqqrS0tKyszD5NKykpKSsrc9znzp075eXl1dXVxcXFNputuLg4Ly+vtLTUsX02m62srMxisZSUlDSceC5fvtxsNte73WazlZaW5uTk5OXl1Vs5qqioKCkpuXv3rr079YJltVqLi4urq6sb/rL2YDWa5oSEhMWLF69atWrt2rWffvrppvsSEhLCw8MTExM/+eSTBQsWfPjhh00fTri+Dhesgat2tJgqr5Vb31i7868JO16M3zZ9a9qBqze+L6mYdSrvjSPZiXm3L5RZ/+/b/GcPNH5+w3OpmU5eXVhTUxMWFnbkyJG6ujqz2bx+/Xr7Xenp6WFhYWazOTw83GQyGRPG1atXR0ZG2uNy7949TdNyc3MzMzM1TUtKSgoPDzebzZqmxcfHG/tUVlYuXbrUeCiTyTRv3rw7dx5aYmsYrMrKyoULFzo++9mzZ3Vdt9lsiYmJ9tsjIyOvXbumPxysH3/8MTIycvXq1Y0uyRnBslqtH374YW5ubsMd6urqbDbb8ePHP/zwQyOINputsLAwIiJC1/WCgoKaGi4n6Og6XLD6fNzCfHDoul2xqUd3f3EyNvXo6PW71x/78mTB7dmZ1xdeKDp2625WacXfT19t5mys/gfOFTsXrC+//FLTtHv37um6vmPHDrPZbAxMKioqNE07fvy4zWarra3dvXu3yWSqqqoqLCzUNM3+8ll6errZbK6trc3MzAwNDf3nP/9ZU1Njs9mys7NDQ0OLiop0XY+NjZ07d+69e/dsNpvVap07d+7SpUsdf4aGwdq7d6/ZbL57967x7EuXLl2yZImu6xcvXtQ07datW8aMctmyZYsWLdIdgnX79m2z2bxhw4am5rZGsGpqapKTkzVNO3jwoOO91dXVs2fPjoyMNJlMZrN59uzZs2fPnjdvntVq1TSturp6yZIlK1eudObAwoV1uGD1bupdGWKTPWO3DF23a93hLzamH/9/21JmJR2ITzu27cTX72dkzckq+OZOefrNsv86c9UrpblT3gccOOfkCGvBggUrVqwwvr5165amad98842u6+Xl5SaTadWqVaWlpbqu19XVGTM+m802d+7cDRs2GP8kJiZm06ZNuq4bI6ySkhLj9urq6tDQ0OzsbGMIdu7cOfszXrp06eTJk455ahiskpIS++S0qqpq+fLlH3zwga7rOTk5mqalpqYak8SKigpjsGYE6/Lly2azefPmzc2sxDmuYR06dEjTtM2bNzvuYLVa16xZ8+WXX546dcpisVitVqvVarPZIiIibt26FRYWVm94iA6owwXr+X82OSUcunbXpqMn4tOODUnYMWT1jjWHMjYdPR68/eCYw9+/dDDr9fTs/ziYNaDpVBnb86lZzgSruLhY07T58+cvX758xYoVy5cvN5lMMTExxr1ff/11ZGSkscPmzZt//PFH4/ZDhw6ZzeaamhojRsbtRrCsVquxT01NTWhoaFZWlsViCQ0NvXHjRjM/RsNg2Wy27777btWqVTExMcbszwiWzWYzhoGapi1evHj//v2VlZW6rl+7ds14nTEqKmrOnDnNzNrqLbrv378/NDT02LFj9h0OHTr0ySefVFVVLVu27JtvvrE3cdGiRXv27Fm4cGGLRxUu73EFKzg4eIaDoKAgVVUfyyOHPN5gjdqU2ugFz73jtizafyTp6HGfNTv7xiUv3Je+I+PEhA17Pjp0fHV2vlezc0DH7bX0bGeugt64caPJZNq3b9/++z799FN7g/T7K9+nTp1asmSJyWTKy8vTdb2ystL4Oi0tbd68ecZwpqlgGSkpLCy0P6nNZqu3utQwWGvWrDGbzZmZmZWVlbW1tevWrTOCZairqysqKkpPT4+KioqMjLRarcazHD9+vLS01GQyJScnN/UrN3yV8KuvvrKPyGw229KlS2NjYxMSEubMmbNmzZqdO3caQ84TJ06EhoaeP3++xaMKl/dLgjVkyBB/f3/j63Hjxrk56NSpU+fOnb28vB5Lth5nsEyHTzV6FeGg+G3JR4//fcuBXnFbesdtmbhh75vrdr2asHPHyVMfnbv6bLPTQMf54KR/X27xtIaamhqz2bxx40bHG8vLyzVN27ZtW0FBwfz588vLy+07m0ym3bt3G9/Gx8fHx8d/8MEH9lO3mgpWdXV1WFhYSkqK/SmSkpJmz57dzJTQmH/t2rXLvsOSJUuMcd+BAwcWLFhg70thYaExfHNcdE9PT9c0zViMb6j50xocrVix4syZMzdv3jTOFM3OztY07YcffmjqFUZ0HL8kWL/61a/69+9vfG0E65133pk1a1ZQUNDMmTOHDh3auXPnHj16BAcH/+ynMDzOYO25mP98Yy8UDorflnzsxN+3pPx0llZc8vPx2+btPbzn36cmHHF2eOWVmjknq7DF07DOnTunaZrj2Mdg5KOiomL27NlxcXFXr14tLCzcvn27pmkWi8XYxzgHIiwszH66Q1PB0nV97969JpMpLS2toKBg3759xlp+w2d0TFh0dPScOXOMcxrWrl1rNpujoqKKioqKiopMJtPWrVuLiory8vI+/vhj4wSua9eu2YNls9kWLFgwd+7cRqvUfLAsFsuyZcsWL14cExMTHh4+Z86ctWvXnj59urCwMDIyMikpaeXKlZcvX3Z8LRUd0NWrV4OCgoz/52fMmPHOO++MHTt22rRp9hAEBgbOnDlTUZQJEyZMnDjR2Dk4OHjq1Knu7u69e/eeOnVqcHCwEawJEx568/W3337bzc1t6NCh9luCgoKmTJkyZcoU+5O2dbAspXcDkg42OiVcuC9905HjIxI/7/vxFu/V2xfuT9967MTkpNQ/f97y28sY218Ont9XVNLiz7BixYro6OiGg4XMzEyz2XzhwoXS0tL169fPmTMnIiIiLi7u0qVL9n1sNltUVFRcXJz9lvPnz0dERDgGy2w22ydQp0+fXrhwYXh4+OLFi40TFBx9/PHHUVFRjsG6c+fOypUrzWZzdHR0enp6fn5+RESEMdG7cuVKXFxcREREVFRUYmJicXGxruvXr1+PiIiwn4d169atiIiIRk9Jt79K2Ogxqa6uzsjIuHbtWk1NzdKlS7///nvjVwsPD8/Nza2trY2JidE0LTExsaWjC1d29uxZHx+fkJCQPn36uLm5de7cuXPnzm5ubn379jVC0K1bNy8vr65duxp3derUKSAgYPr06cZuxtQvMDCw0WCFhIR07dr1j3/8o/G1t7e3sb/xOIMHD26HYN2rrglrbFboEZvst3bnhvTjOzJOxqUd3Xz0xO4vTk7duK93/I6+O1t4Az/75p+Rm/dY32GmYdQqKyvDwsIcE/bzHsf5/ev92589KduzZ4+mac5crhgTE3PmzJmKiorFixfbX+W0Wq3r1q2zvxiKjsmYEo4fP97NzW3MmDHGhz54e3t37tzZWH7q1q2bEang4GBFUXr06NGjR4+QkJDg4GB3d/d+/foZM76mgtWjRw93d/eQkJAxY8a4ubm9/vrrxlP4+vq6ubmNHDmyrYNl0/WT12++sraRd0b2jEt+ZfX2/9qSEr3n8P9uT3tz3a4+cVs8V27vu9OpEdZzqVnxl35ovc/RsdlsFRUVe/bs+cc//tGWF0s/LnV1dU5e+mNfq2LFCvUYwQoKCpo0aZKRnuDg4Ndee61Tp072YP3hD3+wd+Gll17q2rWr8XXDNayGwfr973/fpUuXkJCQ7t27d+vWzfGu7t27/+53v2vrYOm6Xl1XF3Pi26bOIPWMTe7t+GFfTrxFsrHc/v5XeYXWRi5JeVzKyspMJlN4ePjly5db71mAJ5l90f3dd9/t27dv9+7d3d3dn3rqKcdg2aeHISEhgwcPfuqpp5wPVrdu3bp37x4SEtK1a1f7zgYvLy/7Q7VpsHRdLygrn7Q93Zm3SO7p3FskD0nPTrtZ1trDnpqamp9xfTLgMoxg+fn5ubm5eXt7BwYGqqo6btw4x2D169fv5wVr+vTpbm5ugwYNCgkJ+fWvf+3p6el4b58+feyDtbYOVp3Nlnal4D/X722xWS1+as6AA+cGpWUtzb1ZXitvmgbIYgTrT3/6k+N8zVgd/4XBCg4O9vDw6NSp0/vvvx8SEtK7d+8uXbrMmjXLuFdRFHd3dw8Pj/YJlq7r1XV1u3PzX1+/r/kPzmnxQyj+cvD84pwbTl4/COCXuHLlSmBg4MCBAzt16uTj4zNp0qSXXnrJ3d3dzc3NyEQzwTKmewEBAYqiGMF65ZVXhg0bNnTo0MGDB//2t791c3Pz9fU1dp4+fbq7u/szzzzz1ltvjR07tkePHsbLi+0WLF3Xq+vqPs+1+Hy2v4UPUm3iVcIBB84NplZAGzJOa1AUpV+/fu7u7u7u7v379w8MDHz66aeffvrp4ODg7t27DxgwwN6Fl19++Te/+Y3x9YgRI7p169alS5fAwMDx48d3uc/d3b179+5eXl5Tp051bEpgYGCfPn2MfXr16mWMvNozWLqu19psZ27cnrk7488rm3gb0iaC5ZWSOfqL3B0Fd5gJAm2mw1383Kgb96xrvs0dvTm13ydbPeO2OC5s1TutYUDKuWdTMt84ciH6fGFWqZUPIgTaEsH6SU2d7XLJ3U2Zl/875d//uX7fwFU7+n681TPup4/5ejYlc1Ba1mvpF6Z/nRd/+Yczd8oZWAFtj2A9xKbr5TW152+X7MqxxJ06/8Hx76JPfPfBufzYizeTrxWfvlNeXEWogHZDsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACI4WrBulNSysbG5qpb1vnsNijOL/QIwSqvqCivqCivsN7/ouLhWxre3tSNjW7WBjs7/4BWh83Jp2v0h3fmn1ub3rnRW+r9VNaHH8SZn82ZI2ltYrdmDkujR9uZX8r5P+vP+4v8vEdw8uds9Nds/j8qZ47zz/7D1fs1rQ1udPI/M+ePVZP/wedevNgGxfmFmBIC0HXXmxK29/EE0IoIFgAxCBYAMQgWADEIFgAxCBYAMQgWADEIFgAxCBYAMQgWADEIFgAxCBYAMUQEa9y4cS3uQ7AA1/fkB0tRlMmTJ7e4G8ECXN+TH6zx48erqtribgQLcH1PeLAmTpw4bdo0Z/YkWIDrs1gsQU+eGTNmTJ48edy4cUFBQU6mjWABrs9iscx48sycOVNRlEcaixEswPU94VNC5xEswPURLABiECwAYhAsAGIQLABiECwAYhAsAGIQLABiECwAYhAsAGIQLABiECwAYhAsAGIQLABiECwAYhAsAGJkXszv6as8aVsvP8VrhBrwXjDBAvBA5sV8Dx/lid1eGKk6GS2CBbi+JzxYRrMIFgBd1/XMXEu7J6nFbdxUggVA1zMvCgjWC6P4XEIAQoLV26/lT9AhWIDrExGsnj4ECwDBAiAIwQIgBsECIMaTfx4WwQLwE0ZYAMQgWADEEHGmO8ECoOsEC4AgBAuAGLxKCEAMggVADF4lBCAGwQIgBlNCAGIwwgIgBsECIAbBAiAGa1gAxCBYAMSQESxfggVASrAYYQHQufgZgCCMsACIQbAAiEGwAIjBiaMAxGDRHYAYjLAAiEGwAIjBojsAMRhhARBDRLB6+REsAEKmhF7DVYIFQEawhk8MJlgABASr71AluOVeESygA3jCTxzt7afMmNVyrQgW0CE8sSOsnr7KX8eqs1pevCJYQIdhseTPnBXypG1BSojqxDSQYAEdS35+/qOF4UlFsADXR7AAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEE6QS30AAAFqElEQVSwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiOE6wRo2fOSw4SPb+3gCaEWuEyx/f39/f//2Pp4AWhHBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIghusE648vDH3jjTfa+3gCaEWuEyxDex9PAK3IdYI1fPjw4cNfbO/jCaAVuU6wRo0aNWrU4PY+ngBakesEa8yYMWPG/Ed7H08Arch1gsUaFuDyXCdYY8eOHTvWu72PJ4BW5DrBCggICAggWIArI1gAxHCdYLGGBbg81wkWIyzA5blYsALa+3gCaEUEC4AYBAuAGAQLgBgEC4AYBAuAGAQLgBgEC4AYBAuAGAQLgBgEC4AYBAuAGK4TLDc3N7dnBrb38QTQilwnWAHeHgQLcG2uFSwP3l4GcGUEC4AYBAuAGK4VLNawAJdGsACI4ULB8hv4jJtHex9PAK3IhYIVEODtwafmAK7MpYLFme6AayNYAMQgWADEIFgAxCBYAMQgWADEIFgAxCBYAMQgWADEcJ1gGdr7eAJoRXl5eRMnTXGBzc3bw+2ZgX7tfTwBtKL8/HzVJRAswPURLABiECwAYhAsAGIQLABiECwAYhAsAGIQLABiECwAYrhOsLg0B3B5rhMsLn4GXB7BAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiAGwQIgBsECIAbBAiCGEaz3pquvv6O+OlYNmKIqDhVQFHX0ZPXVANVvnDptZiOZGBKgjpv64Nu331MDGmzTg1q5VaqqEiygI8jPz/cbr/b0VV7yVwaPUXr6Kl7DFUVRVVWdpagD3lR6+Sneb6nPjVR7+irv/O2hRkybqXr6KqMmPbill5/i6ftg6+mrePgoEwMJFoDH4eKV/J4+yoh3f/rffvI0taePMnqSqqqq33jV01exj48Gj1Z6+xkpUwOmqEMC1F6+ioePMmpikxH5i7/yyltKk3c/VgQLcH1ZF/M9fZVZ96uiqGovX8X7LUVV1T+/qTw/8kFu/jZd9fBRps5QVVX1fkt50V950V/p+fAIy9GwCWr/N38arLUBggW4vkt5+f4OxVEU1dNX8RmnKqrq6au8/vaDu6YHqR4+yriHZ4W9/BofYb0/Q+3pq0xuk8mggWABrq/eq4RDApSevsr0IHWWonr6Kr7jHgyQZgSpHj7KW1MeykRTwXpu5EOjszZAsADXZw/W9CD1+ZFqL1/l3fdVVbUH60ERZsxqPFj+DYJlTB6Nx2kzBAtwfUawRkxUPX2VQaMeLLEbU8LXGkwJ35n6UCYaHWH9xWF5vs0QLMD15efnvxqgePoqb79XPwHPDleeG/ng2ynTVA8f5f0ZD+3TaLB6+Sl/HdsKTWoWwQJc34VLlp6+yqTGVsffnKD29FUC758vOshf6Tu0/ripYbCM+eD4h9fm2wDBAlxf5kVLT19l4AjVcRsxUVVVVVFVrxFKL1/luZFK/2Gqp28jy1K9/Oqf1vD23x6c/dCWCBbg+i7l5Y+aqNbbHM9NHz9VHTZBfWuyOqOxK2z8J6nvTX/olinT1FET1VltvIJFsICOgIufAYhBsACIQbAAiEGwAIjhOsHy8fHx8fFp7+MJoBW5TrBGj/YfPdq/vY8ngFZEsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACIQbAAiEGwAIhBsACI4WrBstls7X1IAbQWVwvW7t27aRbgqlwjWFOmTPn/PSMA+OaeeswAAAAASUVORK5CYII=" alt="" width="304" height="462" />
图2 导航界面
aaarticlea/png;base64,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" alt="" width="307" height="494" />
图3 线程池下载
3.相关知识
(1)线程池类 java.util.concurrent.ThreadPoolExecutor
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程.每个线程都使用默认的堆栈大小, 以默认的优先级运行,并处于多线程单元中.如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙. 如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值.超过最大值的线 程可以排队,但他们要等到其他线程完成后才启动。
- ThreadPoolExcutor 为一些Executor提供了基本的实现,这些Executor是由Executors中的工厂 newCahceThreadPool、newFixedThreadPool和newScheduledThreadExecutor返回的。
- ThreadPoolExecutor是一个灵活的健壮的池实现,允许各种各样的用户定制。
- ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime, TimeUnit unit,BlockingQueue workQueue,RejectedExecutionHandler handler)
1.参数说明
- corePoolSize: 线程池维护线程的最少数量
- maximumPoolSize:线程池维护线程的最大数量
- keepAliveTime: 线程池维护线程所允许的空闲时间
- unit: 线程池维护线程所允许的空闲时间的单位
- workQueue: 线程池所使用的缓冲队列
- handler: 线程池对拒绝任务的处理策略
2.运行机制
一个任务通过 execute(Runnable)方法被添加到线程池,任务就是一个 Runnable类型的对象,任务的执行方法就是 Runnable类型对象的run()方法。当一个任务通过execute(Runnable)方法欲添加到线程池时:
- 如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。
- 如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。
- 如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。
- 如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过
handler所指定的策略来处理此任务。
处理任务的优先级为:
- 核心线程corePoolSize、任务队列workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务。
- 当线程池中的线程数量大于
corePoolSize时,如果某线程空闲时间超过keepAliveTime,线程将被终止。这样,线程池可以动态的调整池中的线程数。
unit可选的参数为java.util.concurrent.TimeUnit中的几个静态属性:NANOSECONDS、MICROSECONDS、MILLISECONDS、SECONDS。
workQueue我常用的是:java.util.concurrent.ArrayBlockingQueue
handler有四个选择:
- 抛出java.util.concurrent.RejectedExecutionException异常:ThreadPoolExecutor.AbortPolicy()
- 重试添加当前的任务,他会自动重复调用execute()方法:ThreadPoolExecutor.CallerRunsPolicy()
- 抛弃旧的任务:ThreadPoolExecutor.DiscardOldestPolicy()
- 抛弃当前的任务:ThreadPoolExecutor.DiscardPolicy()
线程池原生使用案例代码如下:
int corePoolSize = 1;
int maximumPoolSize = 2;
int keepAliveTime = 10;
BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<Runnable>(5);
ThreadFactory threadFactory = Executors.defaultThreadFactory();
//线程池和队列满了之后的处理方式
//1.抛出异常
RejectedExecutionHandler handler = new ThreadPoolExecutor.AbortPolicy();
RejectedExecutionHandler handler2 = new ThreadPoolExecutor.CallerRunsPolicy();
RejectedExecutionHandler handler3 = new ThreadPoolExecutor.DiscardPolicy();
RejectedExecutionHandler handler4 = new ThreadPoolExecutor.DiscardOldestPolicy();
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, workQueue, threadFactory, handler2);
for (int j = 1; j < 15; j++) {
threadPoolExecutor.execute(new Runnable() {
public void run() { try {
System.out.println(Thread.currentThread().getName());
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
} }
});
} System.out.println(threadPoolExecutor); }
3.线程池定制
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
}
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue) {
this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
Executors.defaultThreadFactory(), defaultHandler);
}
newCachedThreadPool比较适合没有固定大小并且比较快速就能完成的小任务,没必要维持一个Pool,这比直接new Thread来处理的好处是能在60秒内重用已创建的线程。
public static ExecutorService newCachedThreadPool() {
return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
60L, TimeUnit.SECONDS,
new SynchronousQueue<Runnable>());
}
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue) {
this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
Executors.defaultThreadFactory(), defaultHandler);
}
newSingleThreadExecutor单线程原理:
public static ExecutorService newSingleThreadExecutor() {
return new FinalizableDelegatedExecutorService
(new ThreadPoolExecutor(1, 1,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>()));
}
(2) Java线程池
Java通过Executors提供四种线程池,分别为:
- newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
- newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
- newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
- newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
1. newCachedThreadPool
创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调 用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使用的线程。因此,长时间保持空闲的线程池不会使用任何资源。注意,可以使ThreadPoolExecutor 构造方法创建具有类似属性但细节不同(例如超时参数)的线程池。示例代码如下:
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
for (int i = 0; i < 10; i++) {
final int index = i;
try {
Thread.sleep(index * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
} cachedThreadPool.execute(new Runnable() { @Override
public void run() {
System.out.println(index);
}
});
}
线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。
2. newFixedThreadPool
创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于处理任务的活动状态。如果在所有线程处于活动状态时提交附加任务,则在有可用线程之前,附加任务将在队列中等待。如果在关闭前的执行期间由于失 败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。在某个线程被显式地关闭之前,池中的线程将一直存在。案例代码如下:
1 ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
for (int i = 0; i < 10; i++) {
final int index = i;
fixedThreadPool.execute(new Runnable() { @Override
public void run() {
try {
System.out.println(index);
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
因为线程池大小为3,每个任务输出index后sleep 2秒,所以每两秒打印3个数字。定长线程池的大小最好根据系统资源进行设置。如Runtime.getRuntime().availableProcessors()。
3. newScheduledThreadPool
创建一个定长线程池,支持定时及周期性任务执行。延迟执行示例代码如下:
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.schedule(new Runnable() {
@Override
public void run() {
System.out.println("delay 3 seconds");
}
}, 3, TimeUnit.SECONDS);
表示延迟3秒执行。
4.newSingleThreadExecutor
创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程。(注意,如果因为在关闭前的执行期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执行 后续的任务)。可保证顺序地执行各个任务,并且在任意给定的时间不会有多个线程是活动的。与其他等效的 newFixedThreadPool(1) 不同,可保证无需重新配置此方法所返回的执行程序即可使用其他的线程。示例代码如下:
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i < 10; i++) {
final int index = i;
singleThreadExecutor.execute(new Runnable() {
@Override
public void run() {
try {
System.out.println(index);
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
结果依次输出,相当于顺序执行各个任务。
(3)AsyncTask
AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程。
AsyncTask定义了三种泛型类型 Params,Progress和Result。
- Params 启动任务执行的输入参数,比如HTTP请求的URL。
- Progress 后台任务执行的百分比。
- Result 后台执行任务最终返回的结果,比如String。
使用过AsyncTask 的同学都知道一个异步加载数据最少要重写以下这两个方法:
- doInBackground(Params…) 后台执行,比较耗时的操作都可以放在这里。注意这里不能直接操作UI。此方法在后台线程执行,完成任务的主要工作,通常需要较长的时间。在执行过程中可以 调用publicProgress(Progress…)来更新任务的进度。
- onPostExecute(Result) 相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI。 此方法在主线程执行,任务执行的结果作为此方法的参数返回
有必要的话你还得重写以下这三个方法,但不是必须的:
- onProgressUpdate(Progress…) 可以使用进度条增加用户体验度。 此方法在主线程执行,用于显示任务执行的进度。
- onPreExecute() 这里是最终用户调用Excute时的接口,当任务执行之前开始调用此方法,可以在这里显示进度对话框。
- onCancelled() 用户调用取消时,要做的操作
使用AsyncTask类,以下是几条必须遵守的准则:
- Task的实例必须在UI thread中创建;
- execute方法必须在UI thread中调用;
- 不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法;
- 该task只能被执行一次,否则多次调用时将会出现异常;
4.项目核心代码解析
1.AsyncTask文件下载逻辑函数:
private class DownloadByAsyncTask extends AsyncTask<String, Integer, String> {
//onPreExecute方法用于在执行后台任务前做一些UI操作
@Override
protected void onPreExecute() {
Log.i(TAG, "onPreExecute() called");
progressDialog.show();
result.setText("loading...");
} //doInBackground方法内部执行后台任务,不可在此方法内修改UI
@Override
protected String doInBackground(String... params) {
Log.i(TAG, "doInBackground(Params... params) called");
String mark="";
try
{
URL url = new URL(params[0]);
URLConnection urlConnection = url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
int contentLength = urlConnection.getContentLength(); // 要下载的文件的大小
Log.i(TAG, "the download file's content length: " + contentLength);
// File.separator 表示文件路径分割线//
String downloadFoldersName = Environment.getExternalStorageDirectory() + File.separator + GEEK_BAND + File.separator;
File file = new File(downloadFoldersName);
if (!file.exists()) {
file.mkdir();
} String fileName = downloadFoldersName + "test.apk";
File apkFile = new File(fileName);
if (apkFile.exists()) {
apkFile.delete();
}
int downloadSize = 0;
byte[] bytes = new byte[1024];
int length = 0;
OutputStream outputStream = new FileOutputStream(fileName);
while ((length = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, length);
downloadSize += length;
int progress = downloadSize * 100 / contentLength;
mark=String.valueOf(progress);
publishProgress(progress);
Log.i(TAG, "download progress: " + progress);
}
Log.i(TAG, "download success");
inputStream.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
Log.i(TAG, "download failure");
}
return mark;
} //onProgressUpdate方法用于更新进度信息
@Override
protected void onProgressUpdate(Integer... progresses) {
Log.i(TAG, "onProgressUpdate(Progress... progresses) called");
// 更新ProgressDialog的进度条
progressDialog.setProgress(progresses[0]);
result.setText("loading..." + progresses[0] + "%");
} //onPostExecute方法用于在执行完后台任务后更新UI,显示结果
@Override
protected void onPostExecute(String results) {
Log.i(TAG, "onPostExecute(Result result) called");
progressDialog.dismiss();
result.setText("下载进度:"+results);
} //onCancelled方法用于在取消执行中的任务时更改UI
@Override
protected void onCancelled() {
Log.i(TAG, "onCancelled() called");
result.setText("cancelled");
}
}
DownloadByAsyncTask
2.线程池定义及执行代码:
newFixedThreadPool = Executors.newFixedThreadPool(1);
download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (HttpUtil.IsOnline(mContext)) {
result.setText("开始文件下载");
progressDialog.show();
newFixedThreadPool.execute(new Runnable() {
@Override
public void run() {
download(url_text.getText().toString());
}
});
} else {
result.setText("网络未连接");
}
}
});
5.项目源代码下载
本项目源代码在360云盘上,开发环境为 Android Studio 2.0 。
https://yunpan.cn/cYamkZG3sq9jf 访问密码 f3d5。文件名称:android多线程操作。
android 多线程的更多相关文章
- Android多线程分析之五:使用AsyncTask异步下载图像
Android多线程分析之五:使用AsyncTask异步下载图像 罗朝辉 (http://www.cnblogs.com/kesalin) CC 许可,转载请注明出处 在本系列文章的第一篇<An ...
- Android多线程分析之四:MessageQueue的实现
Android多线程分析之四:MessageQueue的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前面两篇文章<Androi ...
- Android多线程分析之三:Handler,Looper的实现
Android多线程分析之三:Handler,Looper的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前文<Android多 ...
- Android多线程分析之二:Thread的实现
Android多线程分析之二:Thread的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前文<Android多线程分析之一 ...
- Android多线程分析之一:使用Thread异步下载图像
Android多线程分析之一:使用Thread异步下载图像 罗朝辉 (http://www.cnblogs.com/kesalin) CC 许可,转载请注明出处 打算整理一下对 Android F ...
- 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)
1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- android: 多线程编程基础
9.1 服务是什么 服务(Service)是 Android 中实现程序后台运行的解决方案,它非常适合用于去执行那 些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使 ...
- android程序---->android多线程下载(一)
多线程下载是加快下载速度的一种方式,通过开启多个线程去执行一个任务,可以使任务的执行速度变快.多线程的任务下载时常都会使用得到断点续传下载,就是我们在一次下载未结束时退出下载,第二次下载时会接着第一次 ...
- Android多线程----异步消息处理机制之Handler详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
随机推荐
- NFS Volume Provider(Part III) - 每天5分钟玩转 OpenStack(64)
今天我们将前一小节创建的 NFS volume “nfs-vol-1” attach 到 instance “c2”上. 这里我们重点关注 nova-compute 如何将“nfs-vol-1” at ...
- Rust初步(五):Rust与C#性能比较
我学习Rust的目的并不是说期望用它来取代掉现有的开发平台或语言.相反,我认为当前绝大部分研发团队,都不可能只用一个平台或者一个语言. 当组织增长,他们越来越依赖大量的编程语言.不同的编程语言有不同的 ...
- ASP.NET MVC Web API Post FromBody(Web API 如何正确 Post)
问题场景: ASP.NET MVC Web API 定义 Post 方法,HttpClient 使用 JsonConvert.SerializeObject 传参进行调用,比如 Web Api 中定义 ...
- ZOJ Problem Set - 1392 The Hardest Problem Ever
放了一个长长的暑假,可能是这辈子最后一个这么长的暑假了吧,呵呵...今天来实验室了,先找了zoj上面简单的题目练练手直接贴代码了,不解释,就是一道简单的密文转换问题: #include <std ...
- Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)
一.声明 使用了基于springmvc的supermvc的web框架.实习公司的框架. 二.tomact的下载与安装 1选择适合自己电脑配置的jdk和jre版本(截图来自tomcat的官方网站http ...
- 从底层开发谈WebGIS中实现地理长度固定的可视窗口的思路和方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.具体问题 在公司某边界城市的项目中,对方提出因为自己的地图安全度要 ...
- js修改不了input的值
奇怪的input 今天想做一个通过点击按钮,修改input值的控件,但是点击按钮后,input值变成修改的值后又变回了原来的值,百思不得其解,代码如下 <form> <div cla ...
- Linux中读写权限
learn the auth of Linux. Generally, r-x w: write , modify and delete -2 r: read -4 x: execute ...
- 自己封装的一个LoadRes组件
这两周一直太忙,没有好好处理上上上周遇到的一个让我加班到凌晨的问题,这个问题是判断flash的加载. 之前的思路是让flash的人在制作flash的时候,加入了一个回调方法,该方法再会回调我页面的方法 ...
- React Native文件介绍
一.index.ios.js文件中的东西 index.ios.js文件,是js代码的入口文件,所有的代码编写从这开始,可以定义自己的模块和引入第三方模块. import React, { Compon ...