国产中文字幕免费观看_国产高清精品软男同_日韩免费视频播放_亚洲午夜激情

聚集網(wǎng)(jujiwang.com) - 收錄免費(fèi)分類目錄信息軟文發(fā)布網(wǎng)址提交
免費(fèi)加入

熱度:

編號(hào):95401

分類:博客日志

加入:2024-10-28 01:25:05

點(diǎn)入:2024-10-28 01:25:05

備案:登錄可見

名稱:登錄可見

SEO更新時(shí)間
2024-10-28T01:25:10

百度權(quán)重:百度權(quán)重0
百度移動(dòng):百度移動(dòng)0
360 權(quán)重:360權(quán)重0
搜狗權(quán)重:搜狗權(quán)重0
人生苦短

訪問網(wǎng)站

http://www.caorongduan.com

舉報(bào)/報(bào)錯(cuò)
seo綜合信息
SEO信息 百度來訪IP:- | 移動(dòng)端來訪IP:- | 出站鏈接:0 | 站內(nèi)鏈接:0
IP網(wǎng)速: IP地址:114.215.114.30 [中國山東青島 阿里云] | 網(wǎng)速:104毫秒
ALEXA排名 世界排名:- | 預(yù)估IP:- | 預(yù)估PV:-
備案信息 登錄可見 | 名稱:登錄可見 | 已創(chuàng)建:9年7個(gè)月5天
收錄 百度 360 搜狗 谷歌
查詢 0 0 0 0
電腦關(guān)鍵詞 手機(jī)關(guān)鍵詞 頁面友好 首頁位置 索引 近期收錄
0 0 電腦端優(yōu)秀 - 0 0
協(xié)議類型HTTP/1.1 200 OK 頁面類型text/html; charset=UTF-8 服務(wù)器類型Apache/2.2.22 (Ubuntu) 是否壓縮是 原網(wǎng)頁大小55760 壓縮后大小18343 壓縮比67.1%
網(wǎng)站快照

人 生 苦 短 當(dāng) 前 網(wǎng) 頁 不 支 持 你 正 在 使 用 的 瀏 覽 器 . 為 了 正 常 的 訪 問 , 請(qǐng) 升 級(jí) 你 的 瀏 覽 器 . 人 生 苦 短 人 生 苦 短 , 我 愛 C o d i n g . . . 搜 索 關(guān) 鍵 字 搜 索 首 頁 關(guān) 于 配 置 文 件 用 H O C O N / . c o n f 還 是 j s o n 作 者 : 曹 容 端 時(shí) 間 : 2 0 2 0 0 7 2 2 分 類 : P y t h o n 評(píng) 論 簡(jiǎn) 單 比 較 一 下 兩 種 配 置 文 件 的 優(yōu) 缺 點(diǎn) : J S O N : e a s y t o g e n e r a t e p r o g r a m m a t i c a l l y w e l l d e f i n e d a n d s t a n d a r d b a d f o r h u m a n m a i n t e n a n c e , w i t h n o w a y t o w r i t e c o m m e n t s , a n d n o m e c h a n i s m s t o a v o i d d u p l i c a t i o n o f s i m i l a r c o n f i g s e c t i o n s c o n f n i c e f o r h u m a n s t o r e a d , t y p e , a n d m a i n t a i n , w i t h m o r e l e n i e n t s y n t a x b u i l t i n t o o l s t o a v o i d c u t a n d p a s t e w a y s t o r e f e r t o t h e s y s t e m e n v i r o n m e n t , s u c h a s s y s t e m p r o p e r t i e s a n d e n v i r o n m e n t v a r i a b l e s T h e i d e a w o u l d b e t o u s e J S O N i f y o u r e w r i t i n g a s c r i p t t o s p i t o u t c o n f i g , a n d u s e H O C O N i f y o u r e m a i n t a i n i n g c o n f i g b y h a n d . I f y o u r e d o i n g b o t h , t h e n m i x t h e t w o . 簡(jiǎn) 單 比 較 一 下 兩 種 配 置 文 件 的 優(yōu) 缺 點(diǎn) : J S O N : e a s y t o g e n e r a t e p r o g r a m m a t i c a l l y w e l l d e f i n e d a n d s t a n d a r d b a d f o r h u m a n m a i n t e n a n c e , w i t h n o w a y t o w r i t e c o m m e n t s , a n d n o m e c h a n i s m s t o a v o i d d u p l i c a t . . . P y t h o n R e c o r d s 庫 使 用 詳 解 作 者 : 曹 容 端 時(shí) 間 : 2 0 1 9 0 9 0 1 分 類 : P y t h o n 5 條 評(píng) 論 R e c o r d s 是 K e n n e t h R e i t z f o r H u m a n s ? 系 列 繼 r e q u e s t s 后 的 又 一 大 作 , 官 方 描 述 為 只 需 編 寫 S Q L , 其 他 交 給 R e c o r d s , 它 使 得 工 作 流 程 盡 可 能 簡(jiǎn) 單 , 同 時(shí) 提 供 一 個(gè) 優(yōu) 雅 的 方 式 處 理 查 詢 結(jié) 果 。 官 方 網(wǎng) 站 : h t t p s : / / g i t h u b . c o m / k e n n e t h r e i t z / r e c o r d s 2 0 1 9 年 1 0 月 2 1 日 更 新 : 在 目 前 的 版 本 中 存 在 一 個(gè) b u g : 當(dāng) 使 用 S Q L i t e 實(shí) 體 數(shù) 據(jù) 庫 而 非 內(nèi) 存 數(shù) 據(jù) 庫 的 時(shí) 候 , 會(huì) 報(bào) 如 下 錯(cuò) 誤 : s q l a l c h e m y . e x c . P r o g r a m m i n g E r r o r : ( s q l i t e 3 . P r o g r a m m i n g E r r o r ) C a n n o t o p e r a t e o n a c l o s e d d a t a b a s e . b u g i s s u e s 1 2 8 : h t t p s : / / g i t h u b . c o m / k e n n e t h r e i t z / r e c o r d s / i s s u e s / 1 2 8 原 因 可 能 是 : 當(dāng) 我 們 執(zhí) 行 操 作 的 時(shí) 候 , c u r s o r 可 能 已 經(jīng) 關(guān) 閉 。 目 前 g d t r o s z a k 已 經(jīng) 在 分 支 c o n n e c t i o n f i x r e d u x 中 修 復(fù) 了 這 個(gè) b u g 連 接 數(shù) 據(jù) 庫 > > > i m p o r t r e c o r d s > > > d b = r e c o r d s . D a t a b a s e ( s q l i t e : / / / t e s t . d b ) R e c o r d s 使 用 s q l a l c h e m y 的 c r e a t e _ e n g i n e , D B A P I 可 以 完 全 參 照 s q l a l c h e m y 文 檔 , 如 下 示 例 列 出 了 連 接 P o s t g r e S Q L , M y S Q L , O r a c l e , M i c r o s o f t S Q L S e r v e r , S Q L i t e 的 D B A P I : 注 : D B A P I 是 符 合 R F C 1 7 3 8 U n i f o r m R e s o u r c e L o c a t o r s ( U R L ) 定 義 的 一 種 數(shù) 據(jù) 庫 連 接 方 式 P o s t g r e S Q L # d e f a u l t d b = r e c o r d s . D a t a b a s e ( p o s t g r e s q l : / / s c o t t : t i g e r @ l o c a l h o s t / m y d a t a b a s e ) # p s y c o p g 2 d b = r e c o r d s . D a t a b a s e ( p o s t g r e s q l + p s y c o p g 2 : / / s c o t t : t i g e r @ l o c a l h o s t / m y d a t a b a s e ) # p g 8 0 0 0 d b = r e c o r d s . D a t a b a s e ( p o s t g r e s q l + p g 8 0 0 0 : / / s c o t t : t i g e r @ l o c a l h o s t / m y d a t a b a s e ) M y S Q L # d e f a u l t d b = r e c o r d s . D a t a b a s e ( m y s q l : / / s c o t t : t i g e r @ l o c a l h o s t / f o o ) # m y s q l c l i e n t ( a m a i n t a i n e d f o r k o f M y S Q L P y t h o n ) d b = r e c o r d s . D a t a b a s e ( m y s q l + m y s q l d b : / / s c o t t : t i g e r @ l o c a l h o s t / f o o ) # P y M y S Q L d b = r e c o r d s . D a t a b a s e ( m y s q l + p y m y s q l : / / s c o t t : t i g e r @ l o c a l h o s t / f o o ) O r a c l e d b = r e c o r d s . D a t a b a s e ( o r a c l e : / / s c o t t : t i g e r @ 1 2 7 . 0 . 0 . 1 : 1 5 2 1 / s i d n a m e ) d b = r e c o r d s . D a t a b a s e ( o r a c l e + c x _ o r a c l e : / / s c o t t : t i g e r @ t n s n a m e ) M i c r o s o f t S Q L S e r v e r # p y o d b c d b = r e c o r d s . D a t a b a s e ( m s s q l + p y o d b c : / / s c o t t : t i g e r @ m y d s n ) # p y m s s q l d b = r e c o r d s . D a t a b a s e ( m s s q l + p y m s s q l : / / s c o t t : t i g e r @ h o s t n a m e : p o r t / d b n a m e ) S Q L i t e # f o r a r e l a t i v e f i l e p a t h d b = r e c o r d s . D a t a b a s e ( s q l i t e : / / / f o o . d b ) # f o r a a b s o l u t e f i l e p a t h # U N I X / M A C d b = r e c o r d s . D a t a b a s e ( s q l i t e : / / / / a b s o l u t e / p a t h / t o / f o o . d b ) # W i n d o w s d b = r e c o r d s . D a t a b a s e ( s q l i t e : / / / C : \ \ \ \ p a t h \ \ \ \ t o \ \ \ \ f o o . d b ) # W i n d o w s u s i n g r a w s t r i n g d b = r e c o r d s . D a t a b a s e ( r s q l i t e : / / / C : \ \ p a t h \ \ t o \ \ f o o . d b ) # f o r a m e m o r y d a t a b a s e d b = r e c o r d s . D a t a b a s e ( s q l i t e : / / ) 查 詢 R e c o r d s 可 以 方 便 的 使 用 S Q L 語 句 來 查 詢 數(shù) 據(jù) , 通 過 調(diào) 用 q u e r y 方 法 , 對(duì) 返 回 的 結(jié) 果 , 我 們 無 需 過 多 處 理 , 就 可 以 方 便 的 使 用 。 > > > r o w s = d b . q u e r y ( S E L E C T * F R O M u s e r s ) 對(duì) 于 查 詢 語 句 來 說 , R e c o r d s 返 回 的 是 一 個(gè) R e c o r d 對(duì) 象 或 R e c o r d 對(duì) 象 的 一 個(gè) 列 表 。 我 們 可 以 調(diào) 用 R e c o r d 對(duì) 象 內(nèi) 置 方 法 , 比 如 : a s _ d i c t ( ) 作 為 一 個(gè) 字 典 返 回 。 a s _ d i c t ( o r d e r e d = T r u e ) 作 為 一 個(gè) O r d e r e d D i c t 返 回 。 我 們 還 可 以 像 操 作 字 典 一 樣 去 操 作 R e c o r d 對(duì) 象 , 比 如 使 用 k e y s ( ) 和 v a l u e s ( ) # 處 理 單 條 數(shù) 據(jù) > > > r o w s [ 0 ] > > > r o w s [ 0 ] . a s _ d i c t ( ) > > > r o w s [ 0 ] . n a m e 張 三 > > > r o w s [ 0 ] . g e t ( c i t y ) 南 京 # 處 理 多 條 數(shù) 據(jù) > > > r o w s . a l l ( ) [ , , , ] > > > r o w s . a s _ d i c t ( ) [ , , , ] 我 們 也 可 以 像 處 理 任 何 可 迭 代 對(duì) 象 一 樣 使 用 循 環(huán) 來 遍 歷 每 一 行 數(shù) 據(jù) 。 # 循 環(huán) 數(shù) 據(jù) 集 > > > f o r r o w i n r o w s : p r i n t ( r o w . n a m e , r o w . c i t y ) 張 三 南 京 李 四 深 圳 王 五 上 海 張 三 北 京 R e c o r d s 使 用 t a b l i b 來 處 理 數(shù) 據(jù) 導(dǎo) 出 , t a b l i b 是 一 個(gè) 純 P y t h o n 編 寫 的 格 式 無 關(guān) 的 表 格 數(shù) 據(jù) 處 理 庫 , 使 用 t a b l i b 我 們 可 以 方 便 的 將 R e c o r d s 對(duì) 象 導(dǎo) 出 成 下 列 格 式 : E x c e l ( S e t s + B o o k s ) J S O N ( S e t s + B o o k s ) Y A M L ( S e t s + B o o k s ) P a n d a s D a t a F r a m e s ( S e t s ) H T M L ( S e t s ) J i r a ( S e t s ) T S V ( S e t s ) O D S ( S e t s ) C S V ( S e t s ) D B F ( S e t s ) 在 R e c o r d s 類 中 , 內(nèi) 置 了 一 個(gè) d a t a s e t 屬 性 , 用 來 生 成 一 個(gè) t a b l i b 的 D a t a s e t 對(duì) 象 , 也 提 供 了 一 個(gè) e x p o r t 方 法 , 可 以 將 D a t a s e t 對(duì) 象 轉(zhuǎn) 化 為 我 們 所 需 要 的 格 式 : > > > p r i n t ( r o w s . d a t a s e t ) i d | n a m e | a g e | c i t y | | | 1 | 張 三 | 2 7 | 南 京 2 | 李 四 | 3 2 | 深 圳 3 | 王 五 | 2 7 | 上 海 4 | 張 三 | 2 7 | 北 京 > > > r o w s . e x p o r t ( j s o n ) [ , , , ] > > > p r i n t ( r o w s . e x p o r t ( t s v ) ) i d n a m e a g e c i t y 1 張 三 2 7 南 京 2 李 四 3 2 深 圳 3 王 五 2 7 上 海 4 張 三 2 7 北 京 x l s , x l s x , d b f , o d s 這 類 二 進(jìn) 制 數(shù) 據(jù) , 可 以 直 接 保 存 成 文 件 > > > w i t h o p e n ( o u t p u t . x l s , w b ) a s f : f . w r i t e ( r o w s . e x p o r t ( x l s ) ) 命 令 行 工 具 R e c o r d s 還 提 供 了 一 個(gè) 命 令 行 工 具 , 方 便 的 在 終 端 使 用 : u s e a g e : r e c o r d s [ ] [ . . . ] [ u r l = ] r e c o r d s h > > > r e c o r d s s e l e c t * f r o m u s e r s t s v u r l s q l i t e : / / / t e s t . d b i d n a m e a g e c i t y 1 張 三 2 7 南 京 2 李 四 3 2 深 圳 3 王 五 2 7 上 海 4 張 三 2 7 北 京 其 他 操 作 正 如 官 方 的 s l o g a n 一 樣 : R e c o r d s : S Q L f o r H u m a n s ? , R e c o r d s 是 一 個(gè) 非 常 簡(jiǎn) 單 , 但 是 很 強(qiáng) 大 的 , 使 用 原 生 的 S Q L 語 句 來 處 理 大 部 分 的 關(guān) 系 型 數(shù) 據(jù) 庫 的 操 作 。 # I N S E R T d b . q u e r y ( I N S E R T I N T O u s e r s ( n a m e , a g e , c i t y ) V A L U E S ( : n a m e , : a g e , : c i t y ) , n a m e = n a m e , a g e = a g e , c i t y = c i t y ) # U P D A T E d b . q u e r y ( U P D A T E u s e r s S E T c i t y = 成 都 W H E R E n a m e = 趙 六 ) # D E L E T E d b . q u e r y ( D E L E T E F R O M u s e r s W H E R E n a m e = 趙 六 ) 版 權(quán) 聲 明 ? 著 作 權(quán) 歸 作 者 所 有 允 許 自 由 轉(zhuǎn) 載 , 但 請(qǐng) 保 持 署 名 和 原 文 鏈 接 。 不 允 許 商 業(yè) 用 途 、 盈 利 行 為 及 衍 生 盈 利 行 為 。 參 考 文 檔 r e c o r d s 官 方 網(wǎng) 站 s q l a l c h e m y 官 方 文 檔 c r e a t e _ e n g i n e t a b l i b 官 方 網(wǎng) 站 p y t h o n r e c o r d s 使 用 方 法 R e c o r d s 是 K e n n e t h R e i t z f o r H u m a n s ? 系 列 繼 r e q u e s t s 后 的 又 一 大 作 , 官 方 描 述 為 只 需 編 寫 S Q L , 其 他 交 給 R e c o r d s , 它 使 得 工 作 流 程 盡 可 能 簡(jiǎn) 單 , 同 時(shí) 提 供 一 個(gè) 優(yōu) 雅 的 方 式 處 理 查 詢 結(jié) 果 。 官 方 網(wǎng) 站 : h t t p s : / / g i t h u b . c o m / k e n n e t h r e i t z / r e c o r d s 2 0 1 9 年 1 0 月 2 1 日 更 新 : 在 . . . 工 作 量 證 明 之 H a s h c a s h 算 法 , 了 解 一 下 ? 作 者 : 曹 容 端 時(shí) 間 : 2 0 1 8 1 1 2 6 分 類 : A l g o r i t h m 5 條 評(píng) 論 圖 片 來 源 于 網(wǎng) 絡(luò) 一 、 基 礎(chǔ) 概 念 H a s h c a s h 是 一 個(gè) 工 作 量 證 明 ( p r o o f o f w o r k ) 算 法 , 可 以 用 于 垃 圾 郵 件 過 濾 , 拒 絕 服 務(wù) 攻 擊 ( D D O S ) 等 領(lǐng) 域 。 比 特 幣 中 挖 礦 算 法 的 工 作 量 證 明 機(jī) 制 也 是 基 于 H a s h c a s h 來 實(shí) 現(xiàn) 的 。 H a s h c a s h 由 A d a m B a c k 于 1 9 9 7 年 首 次 提 出 , 論 文 戳 這 里 。 先 來 了 解 一 下 H a s h c a s h 算 法 的 原 理 吧 。 正 如 密 碼 學(xué) 中 的 數(shù) 學(xué) 問 題 — — 難 于 解 答 , 易 于 校 驗(yàn) , h a s h c a s h 算 法 的 設(shè) 計(jì) 靈 感 也 是 來 源 于 此 : 要 求 用 戶 計(jì) 算 一 個(gè) 中 等 難 度 但 不 難 解 決 的 功 能 , 以 便 獲 得 對(duì) 資 源 的 訪 問 權(quán) 限 , 從 而 防 止 輕 率 使 用 。 在 垃 圾 郵 件 和 D D O S 中 , 攻 擊 方 幾 乎 是 沒 有 代 價(jià) 的 。 垃 圾 郵 件 軟 件 可 以 批 量 、 高 并 發(fā) 的 發(fā) 送 郵 件 給 目 標(biāo) 地 址 ; D D O S 可 以 利 用 海 量 的 肉 雞 對(duì) 目 標(biāo) 主 機(jī) 進(jìn) 行 網(wǎng) 絡(luò) 請(qǐng) 求 從 而 使 目 標(biāo) 主 機(jī) 限 于 癱 瘓 。 H a s h c a s h 解 決 這 些 問 題 的 手 段 是 讓 攻 擊 方 付 出 一 些 計(jì) 算 資 源 的 「 代 價(jià) 」 。 首 先 , 目 標(biāo) 方 會(huì) 按 照 既 定 規(guī) 則 給 出 一 道 數(shù) 學(xué) 題 , 這 道 數(shù) 學(xué) 題 的 結(jié) 果 不 可 復(fù) 用 ( 每 次 請(qǐng) 求 需 要 重 新 計(jì) 算 ) 。 為 了 得 出 結(jié) 果 , 需 要 一 些 C P U 的 計(jì) 算 資 源 , 然 后 把 計(jì) 算 結(jié) 果 附 在 請(qǐng) 求 上 提 交 給 目 標(biāo) 方 , 目 標(biāo) 方 可 以 非 常 輕 易 的 驗(yàn) 證 結(jié) 果 是 否 正 確 。 這 道 數(shù) 學(xué) 題 的 難 度 可 以 定 義 。 具 體 來 說 , h a s h c a s h 是 基 于 h a s h 的 , 在 通 常 情 況 下 , 使 用 的 是 s h a 算 法 。 拿 電 子 郵 件 舉 例 , 我 要 求 所 有 發(fā) 給 我 的 電 子 郵 件 h e a d e r 中 必 須 包 含 一 個(gè) 合 法 的 「 戳 記 」 。 這 個(gè) 戳 記 中 包 含 著 一 個(gè) 特 定 的 比 特 值 和 我 的 電 子 郵 件 地 址 以 及 一 個(gè) 計(jì) 數(shù) 器 等 等 一 系 列 信 息 。 比 如 一 個(gè) 戳 記 的 比 特 值 是 2 0 , 那 么 我 要 求 通 過 這 個(gè) 戳 記 生 成 的 哈 希 值 的 前 面 2 0 個(gè) 比 特 位 都 是 零 。 這 樣 的 戳 記 我 認(rèn) 為 是 合 法 的 。 為 了 得 到 這 個(gè) 戳 記 , 算 法 會(huì) 不 斷 的 累 加 計(jì) 數(shù) 器 進(jìn) 行 h a s h 碰 撞 , 在 進(jìn) 行 了 上 百 萬 次 的 計(jì) 算 后 , 終 于 得 到 了 2 0 個(gè) 比 特 位 的 前 導(dǎo) 零 。 對(duì) 于 目 前 的 主 流 電 腦 來 說 , 百 萬 次 h a s h 大 概 需 要 幾 秒 鐘 時(shí) 間 。 我 相 信 , 如 果 你 很 有 誠 意 發(fā) 送 一 個(gè) 郵 件 給 我 , 應(yīng) 該 不 會(huì) 在 乎 這 幾 秒 鐘 。 但 是 , 對(duì) 于 垃 圾 郵 件 軟 件 和 D D O S 來 說 , 每 個(gè) 請(qǐng) 求 的 計(jì) 算 累 加 卻 是 及 其 昂 貴 的 , 難 以 實(shí) 現(xiàn) 批 量 的 、 大 規(guī) 模 的 網(wǎng) 絡(luò) 請(qǐng) 求 。 你 看 , 讓 你 每 次 作 惡 付 出 有 限 的 一 些 成 本 , 而 當(dāng) 你 需 要 批 量 作 惡 的 時(shí) 候 , 累 加 的 高 昂 成 本 會(huì) 使 你 望 而 卻 步 。 來 具 體 看 看 h a s h c a s h 戳 記 是 長(zhǎng) 這 個(gè) 樣 子 的 , 通 常 包 含 七 個(gè) 域 , 每 個(gè) 域 使 用 : 分 割 。 1 : b i t s : d a t e : r e s o u r c e : e x t : s a l t : s u f f i x 七 個(gè) 域 說 明 如 下 : 1 . 版 本 號(hào) ( 版 本 0 更 簡(jiǎn) 單 , 但 是 有 一 些 局 限 性 ) 。 2 . 聲 明 的 比 特 值 。 如 果 戳 記 沒 有 真 正 地 使 用 聲 明 的 前 導(dǎo) 零 比 特 進(jìn) 行 散 列 , 那 么 它 就 是 非 法 的 。 3 . 生 成 戳 記 的 日 期 ( 和 時(shí) 間 ) 。 可 以 認(rèn) 為 當(dāng) 前 時(shí) 間 之 后 的 戳 記 以 及 那 些 在 很 久 以 前 的 戳 記 是 非 法 的 。 4 . 戳 記 為 哪 個(gè) 資 源 而 生 成 。 可 能 是 一 個(gè) 電 子 郵 件 地 址 , 但 是 也 可 能 是 一 個(gè) U R I 或 者 其 他 命 名 的 資 源 。 5 . 特 定 應(yīng) 用 程 序 可 能 需 要 的 擴(kuò) 展 。 任 何 附 加 的 數(shù) 據(jù) 都 可 以 放 置 在 這 里 , 但 是 , 在 到 目 前 為 止 的 使 用 中 , 這 個(gè) 域 通 常 是 空 的 。 6 . 將 該 戳 記 與 其 他 所 有 人 為 相 同 的 資 源 在 同 一 日 期 生 成 的 戳 記 區(qū) 別 開 來 的 隨 機(jī) 因 子 ( s a l t ) 。 例 如 , 兩 個(gè) 不 同 的 人 可 以 合 情 合 理 地 在 同 一 天 向 我 的 同 一 個(gè) 地 址 發(fā) 送 電 子 郵 件 。 他 們 不 應(yīng) 該 由 于 我 使 用 了 d o u b l e s p e n d 數(shù) 據(jù) 庫 而 無 法 發(fā) 送 成 功 。 但 是 , 如 果 他 們 每 個(gè) 人 都 使 用 一 個(gè) 隨 機(jī) 因 子 , 那 么 完 整 戳 記 將 是 不 同 的 。 7 . 后 綴 是 算 法 真 正 起 作 用 的 部 分 。 假 定 給 出 了 前 6 個(gè) 域 , 為 了 生 成 一 個(gè) 通 過 期 望 數(shù) 目 的 前 導(dǎo) 零 進(jìn) 行 散 列 的 的 戳 記 , m i n t e r 必 須 嘗 試 很 多 連 續(xù) 的 后 綴 值 。 e g . # 2 0 比 特 位 h a s h c a s h , 一 個(gè) 十 六 進(jìn) 制 字 符 代 表 4 個(gè) 比 特 位 # 耗 時(shí) 1 0 . 5 2 8 3 4 2 9 6 2 3 秒 , 計(jì) 算 2 2 3 0 4 2 7 次 1 : 2 0 : 1 8 1 1 2 6 : f o o : : + J B v h r p i : 2 2 0 8 9 b 0 0 0 0 0 b a 4 5 b 8 0 5 9 9 e 9 8 4 9 a 7 8 7 7 9 8 3 1 2 d c 7 5 3 3 c 7 e d 二 、 代 碼 實(shí) 現(xiàn) 這 里 是 D a v i d M e r t z , P h . D . 實(shí) 現(xiàn) 的 P y t h o n 版 本 的 h a s h c a s h i m p o r t s y s f r o m s t r i n g i m p o r t a s c i i _ l e t t e r s f r o m m a t h i m p o r t c e i l , f l o o r f r o m s h a i m p o r t s h a f r o m r a n d o m i m p o r t c h o i c e f r o m t i m e i m p o r t s t r f t i m e , l o c a l t i m e , t i m e E R R = s y s . s t d e r r # D e s t i n a t i o n f o r e r r o r m e s s a g e s D A Y S = 6 0 * 6 0 * 2 4 # S e c o n d s i n a d a y t r i e s = [ 0 ] # C o u n t h a s h e s p e r f o r m e d f o r b e n c h m a r k d e f m i n t ( r e s o u r c e , b i t s = 2 0 , n o w = N o n e , e x t = , s a l t c h a r s = 8 , s t a m p _ s e c o n d s = F a l s e ) : # 挖 掘 一 個(gè) 新 的 h a s h , 滿 足 前 導(dǎo) 零 為 b i t s 位 # # r e s o u r c e : 資 源 , 在 垃 圾 郵 件 過 濾 中 , 通 常 表 示 郵 箱 地 址 # b i t s : 比 特 位 , 默 認(rèn) 2 0 , 表 示 h a s h 前 5 為 是 零 ( 十 六 進(jìn) 制 每 字 符 4 比 特 位 ) # n o w : 日 期 # e x t : 擴(kuò) 展 字 段 , 通 常 留 空 # s a l t c h a r s : 鹽 的 長(zhǎng) 度 # s t a m p _ s e c o n d s : n o w 字 段 是 否 支 持 秒 級(jí) 別 # v e r = 1 n o w = n o w o r t i m e ( ) i f s t a m p _ s e c o n d s : t s = s t r f t i m e ( % y % m % d % H % M % S , l o c a l t i m e ( n o w ) ) e l s e : t s = s t r f t i m e ( % y % m % d , l o c a l t i m e ( n o w ) ) c h a l l e n g e = % s : * 6 % ( v e r , b i t s , t s , r e s o u r c e , e x t , _ s a l t ( s a l t c h a r s ) ) r e t u r n c h a l l e n g e + _ m i n t ( c h a l l e n g e , b i t s ) d e f _ s a l t ( l ) : # 返 回 一 個(gè) l 長(zhǎng) 度 的 隨 機(jī) 字 符 串 a l p h a b e t = a s c i i _ l e t t e r s + + / = r e t u r n . j o i n ( [ c h o i c e ( a l p h a b e t ) f o r _ i n [ N o n e ] * l ] ) d e f _ m i n t ( c h a l l e n g e , b i t s ) : # 部 分 h a s h 碰 撞 c o u n t e r = 0 h e x _ d i g i t s = i n t ( c e i l ( b i t s / 4 . ) ) z e r o s = 0 * h e x _ d i g i t s w h i l e 1 : d i g e s t = s h a ( c h a l l e n g e + h e x ( c o u n t e r ) [ 2 : ] ) . h e x d i g e s t ( ) i f d i g e s t [ : h e x _ d i g i t s ] = = z e r o s : t r i e s [ 0 ] = c o u n t e r r e t u r n h e x ( c o u n t e r ) [ 2 : ] c o u n t e r + = 1 d e f c h e c k ( s t a m p , r e s o u r c e = N o n e , b i t s = N o n e , c h e c k _ e x p i r a t i o n = N o n e , d s _ c a l l b a c k = N o n e ) : # 校 驗(yàn) s t a m p 是 否 合 法 # # 如 果 指 定 了 c h a c k _ e x p i r a t i o n ( 應(yīng) 該 用 數(shù) 字 來 表 示 ) , 表 示 有 效 期 # > > > f r o m h a s h c a s h i m p o r t D A Y S # > > > c h e c k ( s t a m p , c h e c k _ e x p i r a t i o n = 2 8 * D A Y S ) # i f s t a m p . s t a r t s w i t h ( 0 : ) : # V e r s i o n 0 t r y : d a t e , r e s , s u f f i x = s t a m p [ 2 : ] . s p l i t ( : ) e x c e p t V a l u e E r r o r : E R R . w r i t e ( M a l f o r m e d v e r s i o n 0 h a s h c a s h s t a m p ! \ \ n ) r e t u r n F a l s e i f r e s o u r c e i s n o t N o n e a n d r e s o u r c e ! = r e s : r e t u r n F a l s e e l i f c h e c k _ e x p i r a t i o n i s n o t N o n e : g o o d _ u n t i l = s t r f t i m e ( % y % m % d % H % M % S , l o c a l t i m e ( t i m e ( ) c h e c k _ e x p i r a t i o n ) ) i f d a t e i n t ( c l a i m ) : r e t u r n F a l s e e l i f c h e c k _ e x p i r a t i o n i s n o t N o n e : g o o d _ u n t i l = s t r f t i m e ( % y % m % d % H % M % S , l o c a l t i m e ( t i m e ( ) c h e c k _ e x p i r a t i o n ) ) i f d a t e > > > f r o m h a s h c a s h i m p o r t m i n t , _ m i n t > > > m i n t ( f o o , b i t s = 1 6 ) 1 : 1 6 : 0 4 0 9 2 2 : f o o : : + A r S r t K d : 1 6 4 b 3 > > > _ m i n t ( f o o , b i t s = 1 6 ) 9 5 9 1 > > > f r o m s h a i m p o r t s h a > > > s h a ( f o o 9 5 9 1 ) . h e x d i g e s t ( ) 0 0 0 0 d e 4 c 9 b 2 7 c e c 9 b 2 0 e 2 0 9 4 7 8 5 c 1 c 5 8 e a f 2 3 9 4 8 > > > s h a ( 1 : 1 6 : 0 4 0 9 2 2 : f o o : : + A r S r t K d : 1 6 4 b 3 ) . h e x d i g e s t ( ) 0 0 0 0 a 9 f e 0 c 6 d b 2 e f c b c a b 1 5 1 5 7 7 3 5 e 7 7 c 0 8 7 7 f 3 4 三 、 應(yīng) 用 場(chǎng) 景 B i t c o i n 我 們 還 需 要 一 個(gè) 類 似 于 A d a m B a c k 提 出 的 h a s h c a s h 。 在 進(jìn) 行 隨 機(jī) 散 列 運(yùn) 算 時(shí) , 工 作 量 證 明 機(jī) 制 引 入 了 對(duì) 某 一 個(gè) 特 定 值 的 掃 描 工 作 , 比 方 說 S H A 2 5 6 下 , 隨 機(jī) 散 列 值 以 一 個(gè) 或 多 個(gè) 0 開 始 。 那 么 隨 著 0 的 數(shù) 目 的 上 升 , 找 到 這 個(gè) 解 所 需 要 的 工 作 量 將 呈 指 數(shù) 增 長(zhǎng) , 而 對(duì) 結(jié) 果 進(jìn) 行 檢 驗(yàn) 則 僅 需 要 一 次 隨 機(jī) 散 列 運(yùn) 算 。 我 們 在 區(qū) 塊 中 補(bǔ) 增 一 個(gè) 隨 機(jī) 數(shù) , 這 個(gè) 隨 機(jī) 數(shù) 要 使 得 該 給 定 區(qū) 塊 的 隨 機(jī) 散 列 值 出 現(xiàn) 了 所 需 的 那 么 多 個(gè) 0 。 我 們 通 過 反 復(fù) 嘗 試 來 找 到 這 個(gè) 隨 機(jī) 數(shù) , 直 到 找 到 為 止 , 這 樣 我 們 就 構(gòu) 建 了 一 個(gè) 工 作 量 證 明 機(jī) 制 。 只 要 該 C P U 耗 費(fèi) 的 工 作 量 能 夠 滿 足 該 工 作 量 證 明 機(jī) 制 , 那 么 除 非 重 新 完 成 相 當(dāng) 的 工 作 量 , 該 區(qū) 塊 的 信 息 就 不 可 更 改 。 由 于 之 后 的 區(qū) 塊 是 鏈 接 在 該 區(qū) 塊 之 后 的 , 所 以 想 要 更 改 該 區(qū) 塊 中 的 信 息 , 就 還 需 要 重 新 完 成 之 后 所 有 區(qū) 塊 的 全 部 工 作 量 。 — — 中 本 聰 ( S a t o s h i N a k a m o t o ) 《 比 特 幣 : 一 種 點(diǎn) 對(duì) 點(diǎn) 的 電 子 現(xiàn) 金 系 統(tǒng) 》 比 特 幣 使 用 類 似 h a s h c a s h 算 法 來 作 為 礦 工 的 工 作 量 證 明 , 在 h a s h c a s h 的 基 礎(chǔ) 上 , 比 特 幣 使 用 了 s h a 2 5 6 算 法 , 在 最 初 的 版 本 中 要 求 3 2 比 特 位 的 前 導(dǎo) 零 , 然 后 比 特 幣 網(wǎng) 絡(luò) 會(huì) 周 期 性 的 重 置 難 度 以 應(yīng) 對(duì) 礦 工 日 益 提 升 的 硬 件 性 能 , 目 前 的 難 度 級(jí) 別 要 求 2 5 6 位 哈 希 7 2 比 特 位 的 前 導(dǎo) 零 。 比 特 幣 并 沒 有 完 全 照 搬 h a s h c a s h , 相 對(duì) 于 h a s h c a s h , 比 特 幣 做 了 如 下 改 進(jìn) : h a s h c a s h 使 用 了 s h a 1 ( 1 6 0 位 ) , 而 比 特 幣 使 用 了 s h a 2 5 6 ( 2 5 6 位 ) 。 為 了 提 高 安 全 性 , S a t o s h i 使 h a s h 運(yùn) 行 了 兩 次 。 為 了 確 保 區(qū) 塊 創(chuàng) 建 率 不 變 ( 1 0 分 鐘 出 塊 ) , 周 期 性 調(diào) 整 難 度 ( 前 期 3 2 位 零 , 目 前 7 2 位 零 ) 。 四 、 參 考 鏈 接 h t t p : / / w w w . h a s h c a s h . o r g h t t p s : / / e n . w i k i p e d i a . o r g / w i k i / H a s h c a s h h t t p : / / w w w . g n o s i s . c x / d o w n l o a d / g n o s i s / u t i l / h a s h c a s h . p y h t t p s : / / w w w . i b m . c o m / d e v e l o p e r w o r k s / c n / l i n u x / l h a s h c a s h . h t m l 版 權(quán) 聲 明 ? 著 作 權(quán) 歸 作 者 所 有 允 許 自 由 轉(zhuǎn) 載 , 但 請(qǐng) 保 持 署 名 和 原 文 鏈 接 。 不 允 許 商 業(yè) 用 途 、 盈 利 行 為 及 衍 生 盈 利 行 為 。 圖 片 來 源 于 網(wǎng) 絡(luò) 一 、 基 礎(chǔ) 概 念 H a s h c a s h 是 一 個(gè) 工 作 量 證 明 ( p r o o f o f w o r k ) 算 法 , 可 以 用 于 垃 圾 郵 件 過 濾 , 拒 絕 服 務(wù) 攻 擊 ( D D O S ) 等 領(lǐng) 域 。 比 特 幣 中 挖 礦 算 法 的 工 作 量 證 明 機(jī) 制 也 是 基 于 H a s h c a s h 來 實(shí) 現(xiàn) 的 。 H a s h c a s h 由 A d a m B a c k 于 1 9 9 7 年 首 次 提 出 , 論 文 戳 這 里 。 先 來 了 解 一 下 H a s h c a s h 算 法 的 原 理 吧 。 正 如 密 碼 學(xué) 中 的 . . . Q u e u e : 應(yīng) 用 于 生 產(chǎn) 者 消 費(fèi) 者 模 式 的 P y t h o n 隊(duì) 列 作 者 : 曹 容 端 時(shí) 間 : 2 0 1 6 1 0 2 1 分 類 : P y t h o n 7 條 評(píng) 論 圖 片 來 源 于 網(wǎng) 絡(luò) 版 權(quán) 聲 明 ? 著 作 權(quán) 歸 作 者 所 有 允 許 自 由 轉(zhuǎn) 載 , 但 請(qǐng) 保 持 署 名 和 原 文 鏈 接 。 不 允 許 商 業(yè) 用 途 、 盈 利 行 為 及 衍 生 盈 利 行 為 。 什 么 是 Q u e u e ? Q u e u e 是 P y t h o n 標(biāo) 準(zhǔn) 庫 中 的 線 程 安 全 的 隊(duì) 列 ( F I F O ) 實(shí) 現(xiàn) , 提 供 了 一 個(gè) 適 用 于 多 線 程 編 程 的 先 進(jìn) 先 出 的 數(shù) 據(jù) 結(jié) 構(gòu) , 即 隊(duì) 列 , 用 來 在 生 產(chǎn) 者 和 消 費(fèi) 者 ( ) 線 程 之 間 的 信 息 傳 遞 。 為 什 么 使 用 Q u e u e , 而 不 是 l i s t 或 者 d i c t ? l i s t 或 者 d i c t 是 非 線 程 安 全 的 , Q u e u e 是 線 程 安 全 的 也 即 意 味 著 : 如 果 使 用 l i s t 或 者 d i c t , 我 們 必 須 把 它 放 到 l o c k 程 序 塊 中 ( a c q u i r e 和 r e l e a s e ) , 以 防 止 發(fā) 生 競(jìng) 態(tài) 條 件 。 使 用 l i s t 或 者 d i c t , 需 要 考 慮 線 程 同 步 的 問 題 , 即 需 要 額 外 考 慮 w a i t 和 n o t i f y 。 生 成 者 不 能 向 滿 隊(duì) 列 添 加 數(shù) 據(jù) , 如 果 使 用 l i s t 或 者 d i c t , 需 要 額 外 的 代 碼 實(shí) 現(xiàn) 。 Q u e u e 則 封 裝 了 C o n d i t i o n 行 為 , w a i t ( ) n o t i f y ( ) a c q u i r e ( ) r e l e a s e ( ) 滿 隊(duì) 列 問 題 等 等 , 無 須 額 外 考 慮 。 先 來 了 解 一 些 概 念 生 產(chǎn) 者 消 費(fèi) 者 模 式 ( P r o d u c e r C o n s u m e r ) P r o d u c e r C o n s u m e r 模 式 是 多 線 程 編 程 中 最 常 用 的 設(shè) 計(jì) 模 式 。 生 產(chǎn) 者 負(fù) 責(zé) 生 產(chǎn) 數(shù) 據(jù) , 并 將 數(shù) 據(jù) 存 入 隊(duì) 列 , 消 費(fèi) 負(fù) 責(zé) 消 費(fèi) 數(shù) 據(jù) , 不 斷 從 隊(duì) 列 中 取 數(shù) 據(jù) 來 使 用 。 這 里 面 有 兩 個(gè) 條 件 : 必 須 滿 足 線 程 互 斥 條 件 : 任 何 時(shí) 候 最 多 只 允 許 一 個(gè) 線 程 訪 問 數(shù) 據(jù) , 其 他 線 程 必 須 等 待 。 這 稱 為 線 程 互 斥 。 必 須 滿 足 線 程 同 步 條 件 : 線 程 同 步 是 指 線 程 之 間 所 具 有 的 一 種 制 約 關(guān) 系 , 一 個(gè) 線 程 的 執(zhí) 行 依 賴 另 一 個(gè) 線 程 的 消 息 , 當(dāng) 它 沒 有 得 到 另 一 個(gè) 線 程 的 消 息 時(shí) 應(yīng) 等 待 , 直 到 消 息 到 達(dá) 時(shí) 才 被 喚 醒 。 舉 個(gè) 例 子 : 在 線 程 方 式 下 , 生 產(chǎn) 者 和 消 費(fèi) 者 各 自 是 一 個(gè) 線 程 。 生 產(chǎn) 者 把 數(shù) 據(jù) 寫 入 隊(duì) 列 , 消 費(fèi) 者 從 隊(duì) 列 讀 出 數(shù) 據(jù) 。 當(dāng) 隊(duì) 列 為 空 , 消 費(fèi) 者 就 阻 塞 等 待 ( 稍 事 休 息 ) ; 當(dāng) 隊(duì) 列 滿 ( 達(dá) 到 最 大 長(zhǎng) 度 ) , 生 產(chǎn) 者 就 阻 塞 等 待 。 線 程 阻 塞 線 程 阻 塞 通 常 是 指 一 個(gè) 線 程 在 執(zhí) 行 過 程 中 暫 停 , 以 等 待 某 個(gè) 條 件 的 觸 發(fā) 。 比 如 一 個(gè) 線 程 原 子 操 作 下 , 其 他 的 線 程 都 是 阻 塞 狀 態(tài) 的 ; 比 如 i n p u t 語 句 等 待 用 戶 的 輸 入 , 線 程 也 是 阻 塞 狀 態(tài) ; 比 如 當(dāng) 隊(duì) 列 任 務(wù) 為 空 的 時(shí) 候 , 線 程 等 待 新 的 任 務(wù) , 這 時(shí) 候 線 程 也 是 阻 塞 的 。 線 程 安 全 比 如 一 個(gè) A r r a y L i s t 類 , 在 添 加 一 個(gè) 元 素 的 時(shí) 候 , 它 可 能 會(huì) 有 兩 步 來 完 成 : 在 I t e m s [ S i z e ] 的 位 置 存 放 此 元 素 ; 增 大 S i z e 的 值 。 在 單 線 程 運(yùn) 行 的 情 況 下 , 如 果 S i z e = 0 , 添 加 一 個(gè) 元 素 后 , 此 元 素 在 位 置 0 , 而 且 S i z e = 1 ; 而 如 果 是 在 多 線 程 情 況 下 , 比 如 有 兩 個(gè) 線 程 , 線 程 A 先 將 元 素 1 存 放 在 位 置 0 。 但 是 此 時(shí) C P U 調(diào) 度 線 程 A 暫 停 , 線 程 B 得 到 運(yùn) 行 的 機(jī) 會(huì) 。 線 程 B 向 此 A r r a y L i s t 添 加 元 素 2 , 因 為 此 時(shí) S i z e 仍 然 等 于 0 ( 注 意 , 我 們 假 設(shè) 的 是 添 加 一 個(gè) 元 素 是 要 兩 個(gè) 步 驟 , 而 線 程 A 僅 僅 完 成 了 步 驟 1 ) , 所 以 線 程 B 也 將 元 素 存 放 在 位 置 0 。 然 后 線 程 A 和 線 程 B 都 繼 續(xù) 運(yùn) 行 , 都 增 加 S i z e 的 值 , 結(jié) 果 S i z e 等 于 2 。 那 好 , 我 們 來 看 看 A r r a y L i s t 的 情 況 , 期 望 的 元 素 應(yīng) 該 有 2 個(gè) , 而 實(shí) 際 元 素 是 在 0 位 置 , 造 成 丟 失 元 素 , 而 且 S i z e 等 于 2 。 這 就 是 “ 線 程 不 安 全 ” 了 。 原 子 操 作 原 子 ( a t o m ) 本 意 是 “ 不 能 被 進(jìn) 一 步 分 割 的 最 小 粒 子 ” , 而 原 子 操 作 ( a t o m i c o p e r a t i o n ) 意 為 不 可 被 中 斷 的 一 個(gè) 或 一 系 列 操 作 。 如 變 量 的 賦 值 , 不 可 能 一 個(gè) 線 程 在 賦 值 , 到 一 半 切 到 另 外 一 個(gè) 線 程 工 作 去 了 , 這 是 原 子 操 作 。 但 是 一 些 數(shù) 據(jù) 結(jié) 構(gòu) 的 操 作 , 比 如 上 述 A r r a y L i s t 的 例 子 , 添 加 元 素 是 分 成 兩 個(gè) 步 驟 的 , 所 以 必 須 要 加 鎖 。 加 鎖 后 的 操 作 就 可 以 認(rèn) 為 是 原 子 的 了 。 舉 個(gè) 小 栗 子 來 加 深 理 解 : 原 來 在 銀 行 辦 理 業(yè) 務(wù) 是 排 隊(duì) 的 形 式 的 , 雖 然 也 是 多 線 程 ( 多 個(gè) 窗 口 ) , 但 是 經(jīng) 常 出 現(xiàn) 有 些 柜 臺(tái) 人 多 、 有 些 柜 臺(tái) 人 少 , 或 者 有 些 柜 臺(tái) 辦 理 完 了 , 有 些 柜 臺(tái) 還 排 著 長(zhǎng) 隊(duì) , 這 時(shí) 候 就 需 要 人 工 來 干 預(yù) , 很 麻 煩 , 效 率 不 高 。 現(xiàn) 在 的 銀 行 都 是 叫 號(hào) 系 統(tǒng) , 這 是 一 個(gè) 典 型 的 生 產(chǎn) 者 消 費(fèi) 者 模 式 。 銀 行 提 供 四 排 座 椅 ( 隊(duì) 列 ) , 每 人 手 上 拿 一 個(gè) 號(hào) , 先 來 先 辦 , 后 來 后 辦 ( 先 進(jìn) 先 出 F i r s t i n F i r s t o u t ) ; 由 叫 號(hào) 機(jī) ( 生 產(chǎn) 者 ) 來 打 印 一 個(gè) 號(hào) , 來 一 個(gè) 顧 客 打 印 一 個(gè) 號(hào) , 完 了 塞 到 隊(duì) 尾 ; 當(dāng) 然 可 以 設(shè) 置 一 個(gè) 隊(duì) 列 最 大 數(shù) , 比 如 1 0 0 人 , 超 過 1 0 0 人 在 隊(duì) 列 里 , 叫 號(hào) 機(jī) 就 不 打 印 , 直 到 隊(duì) 列 有 空 閑 位 置 。 銀 行 開 多 個(gè) 窗 口 ( 多 個(gè) 消 費(fèi) 者 線 程 ) 從 隊(duì) 列 里 叫 號(hào) , 辦 完 一 個(gè) , 再 叫 一 個(gè) 。 辦 理 的 業(yè) 務(wù) 是 原 子 性 的 ( 存 或 者 取 都 在 一 個(gè) 人 手 上 完 成 , 中 間 流 程 不 可 分 割 ) 。 也 不 會(huì) 同 時(shí) 有 多 個(gè) 柜 臺(tái) 操 作 你 的 帳 戶 , 所 以 是 線 程 安 全 的 。 如 果 都 辦 理 完 了 , 叫 號(hào) 機(jī) 和 柜 臺(tái) 都 陷 入 了 等 待 狀 態(tài) , 打 一 會(huì) 兒 瞌 睡 , 線 程 阻 塞 , 直 到 有 新 的 顧 客 來 辦 理 業(yè) 務(wù) 。 三 種 形 式 的 Q u e u e : F I F O 隊(duì) 列 圖 片 來 源 于 網(wǎng) 絡(luò) c l a s s Q u e u e . Q u e u e ( m a x s i z e = 0 ) F I F O 即 F i r s t i n F i r s t O u t , 先 進(jìn) 先 出 。 Q u e u e 提 供 了 一 個(gè) 基 本 的 F I F O 容 器 , 使 用 方 法 很 簡(jiǎn) 單 , m a x s i z e 是 個(gè) 整 數(shù) , 指 明 了 隊(duì) 列 中 能 存 放 的 數(shù) 據(jù) 個(gè) 數(shù) 的 上 限 。 一 旦 達(dá) 到 上 限 , 插 入 會(huì) 導(dǎo) 致 阻 塞 , 直 到 隊(duì) 列 中 的 數(shù) 據(jù) 被 消 費(fèi) 掉 。 如 果 m a x s i z e 小 于 或 者 等 于 0 , 隊(duì) 列 大 小 沒 有 限 制 。 L I F O 隊(duì) 列 圖 片 來 源 于 網(wǎng) 絡(luò) c l a s s Q u e u e . L i f o Q u e u e ( m a x s i z e = 0 ) L I F O 即 L a s t i n F i r s t O u t , 后 進(jìn) 先 出 。 與 棧 的 類 似 , 使 用 也 很 簡(jiǎn) 單 , m a x s i z e 用 法 同 上 P r i o r i t y 隊(duì) 列 c l a s s Q u e u e . P r i o r i t y Q u e u e ( m a x s i z e = 0 ) 構(gòu) 造 一 個(gè) 優(yōu) 先 隊(duì) 列 。 優(yōu) 先 級(jí) 級(jí) 別 越 低 的 越 先 出 來 , m a x s i z e 用 法 同 上 。 常 用 方 法 創(chuàng) 建 一 個(gè) 隊(duì) 列 # m a x s i z e 表 示 隊(duì) 列 長(zhǎng) 度 , 小 于 1 表 示 隊(duì) 列 長(zhǎng) 度 無 限 。 i m p o r t Q u e u e q = Q u e u e . Q u e u e ( m a x s i z e = 1 0 ) 將 一 個(gè) 值 放 入 隊(duì) 列 # p u t ( i t e m [ , b l o c k [ , t i m e o u t ] ] ) # 參 數(shù) i t e m 為 必 選 參 數(shù) # b l o c k 為 可 選 參 數(shù) , 默 認(rèn) 為 T r u e # 如 果 隊(duì) 列 為 空 且 b l o c k = T r u e , p u t ( ) 使 得 調(diào) 用 線 程 阻 塞 , 直 到 空 出 一 個(gè) 數(shù) 據(jù) 單 元 。 # 如 果 隊(duì) 列 為 空 且 b l o c k = F a l s e , p u t ( ) 將 拋 出 F u l l 異 常 。 # 將 1 0 插 入 隊(duì) 尾 q . p u t ( 1 0 ) 將 一 個(gè) 值 從 隊(duì) 列 中 取 出 # g e t ( [ b l o c k [ , t i m e o u t ] ] ) # 參 數(shù) b l o c k 為 可 選 參 數(shù) , 默 認(rèn) 為 T r u e # 如 果 隊(duì) 列 為 空 且 b l o c k = T r u e , g e t ( ) 使 得 調(diào) 用 線 程 阻 塞 , 直 到 有 新 數(shù) 據(jù) 產(chǎn) 生 。 # 如 果 隊(duì) 列 為 空 且 b l o c k = F a l s e , g e t ( ) 將 拋 出 E m p t y 異 常 。 # 從 對(duì) 列 頭 部 取 出 一 個(gè) 數(shù) 據(jù) q . g e t ( ) 獲 取 隊(duì) 列 的 大 小 q . q s i z e ( ) 判 斷 隊(duì) 列 是 否 為 空 # 隊(duì) 列 為 空 返 回 T r u e , 反 之 返 回 F a l s e q . e m p t y ( ) 判 斷 隊(duì) 列 是 否 已 滿 # 隊(duì) 列 已 滿 返 回 T r u e , 反 之 返 回 F a l s e q . f u l l ( ) t a s k _ d o n e ( ) 意 味 著 之 前 入 隊(duì) 的 一 個(gè) 任 務(wù) 已 經(jīng) 完 成 。 由 隊(duì) 列 的 消 費(fèi) 者 線 程 調(diào) 用 。 每 一 個(gè) g e t ( ) 調(diào) 用 得 到 一 個(gè) 任 務(wù) , 接 下 來 的 t a s k _ d o n e ( ) 調(diào) 用 告 訴 隊(duì) 列 該 任 務(wù) 已 經(jīng) 處 理 完 畢 。 如 果 當(dāng) 前 一 個(gè) j o i n ( ) 正 在 阻 塞 , 它 將 在 隊(duì) 列 中 的 所 有 任 務(wù) 都 處 理 完 時(shí) 恢 復(fù) 執(zhí) 行 ( 即 每 一 個(gè) 由 p u t ( ) 調(diào) 用 入 隊(duì) 的 任 務(wù) 都 有 一 個(gè) 對(duì) 應(yīng) 的 t a s k _ d o n e ( ) 調(diào) 用 ) 。 j o i n ( ) 阻 塞 調(diào) 用 線 程 , 直 到 隊(duì) 列 中 的 所 有 任 務(wù) 被 處 理 掉 。 只 要 有 數(shù) 據(jù) 被 加 入 隊(duì) 列 , 未 完 成 的 任 務(wù) 數(shù) 就 會(huì) 增 加 。 當(dāng) 消 費(fèi) 者 線 程 調(diào) 用 t a s k _ d o n e ( ) ( 意 味 著 有 消 費(fèi) 者 取 得 任 務(wù) 并 完 成 任 務(wù) ) , 未 完 成 的 任 務(wù) 數(shù) 就 會(huì) 減 少 。 當(dāng) 未 完 成 的 任 務(wù) 數(shù) 降 到 0 , j o i n ( ) 解 除 阻 塞 。 其 他 q . p u t _ n o w a i t ( i t e m ) = = q . p u t ( i t e m , F a l s e ) q . g e t _ n o w a i t ( ) = = q . g e t ( F a l s e ) 一 個(gè) 最 簡(jiǎn) 單 的 生 產(chǎn) 者 消 費(fèi) 者 模 式 # c o d i n g : u t f 8 # f i l e n a m e : q u e u e . p y # a u t h o r : c a o r d @ s h o w w a n t . c o m i m p o r t t i m e i m p o r t Q u e u e i m p o r t t h r e a d i n g c l a s s P r o d u c e r ( t h r e a d i n g . T h r e a d ) : d e f _ _ i n i t _ _ ( s e l f , t h r e a d _ n a m e , q u e u e ) : t h r e a d i n g . T h r e a d . _ _ i n i t _ _ ( s e l f , n a m e = t h r e a d _ n a m e ) s e l f . d a t a = q u e u e d e f r u n ( s e l f ) : f o r i i n r a n g e ( 2 0 ) : p r i n t ( % s : % s i s p r o d u c i n g % d t o t h e q u e u e ! % ( t i m e . c t i m e ( ) , s e l f . g e t N a m e ( ) , i ) ) s e l f . d a t a . p u t ( i ) t i m e . s l e e p ( 1 ) p r i n t ( % s : % s f i n i s h e d ! % ( t i m e . c t i m e ( ) , s e l f . g e t N a m e ( ) ) ) t i m e . s l e e p ( 1 0 ) f o r i i n r a n g e ( 1 0 ) : s e l f . d a t a . p u t ( i ) c l a s s C o n s u m e r ( t h r e a d i n g . T h r e a d ) : d e f _ _ i n i t _ _ ( s e l f , t h r e a d _ n a m e , q u e u e ) : t h r e a d i n g . T h r e a d . _ _ i n i t _ _ ( s e l f , n a m e = t h r e a d _ n a m e ) s e l f . d a t a = q u e u e d e f r u n ( s e l f ) : w h i l e 1 : t r y : n u m = s e l f . d a t a . g e t ( ) p r i n t ( % s : % s i s c o n s u m i n g . % d i n t h e q u e u e i s c o n s u m e d ! % ( t i m e . c t i m e ( ) , s e l f . g e t N a m e ( ) , n u m ) ) e x c e p t : p r i n t ( % s : % s f i n i s h e d ! % ( t i m e . c t i m e ( ) , s e l f . g e t N a m e ( ) ) ) # b r e a k d e f m a i n ( ) : q u e u e = Q u e u e . Q u e u e ( m a x s i z e = 2 0 ) p r o d u c e r = P r o d u c e r ( p r o d u c e r , q u e u e ) c o n s u m e r = C o n s u m e r ( c o n s u m e r , q u e u e ) p r o d u c e r . s t a r t ( ) c o n s u m e r . s t a r t ( ) p r o d u c e r . j o i n ( ) c o n s u m e r . j o i n ( ) p r i n t ( A l l t h r e a d f i n i s h e d ) i f _ _ n a m e _ _ = = _ _ m a i n _ _ : m a i n ( ) 圖 片 來 源 于 網(wǎng) 絡(luò) 版 權(quán) 聲 明 ? 著 作 權(quán) 歸 作 者 所 有 允 許 自 由 轉(zhuǎn) 載 , 但 請(qǐng) 保 持 署 名 和 原 文 鏈 接 。 不 允 許 商 業(yè) 用 途 、 盈 利 行 為 及 衍 生 盈 利 行 為 。 什 么 是 Q u e u e ? Q u e u e 是 P y t h o n 標(biāo) 準(zhǔn) 庫 中 的 線 程 安 全 的 隊(duì) 列 ( F I F O ) 實(shí) 現(xiàn) , 提 供 了 一 個(gè) 適 用 于 多 線 程 編 程 的 先 進(jìn) 先 出 的 數(shù) 據(jù) 結(jié) 構(gòu) , 即 隊(duì) 列 , 用 來 在 生 產(chǎn) 者 和 消 費(fèi) 者 ( ) 線 程 之 間 的 信 息 傳 遞 。 為 什 么 使 用 Q u e u . . . 深 入 淺 出 P y t h o n 多 線 程 ( 1 ) 創(chuàng) 建 線 程 作 者 : 曹 容 端 時(shí) 間 : 2 0 1 6 1 0 0 5 分 類 : P y t h o n 1 條 評(píng) 論 圖 片 來 源 于 網(wǎng) 絡(luò) T h r e a d 對(duì) 象 T h r e a d 對(duì) 象 位 于 P y t h o n 標(biāo) 準(zhǔn) 庫 中 的 t h r e a d i n g . p y 中 。 它 的 初 始 化 方 法 是 這 樣 的 : d e f _ _ i n i t _ _ ( s e l f , g r o u p = N o n e , t a r g e t = N o n e , n a m e = N o n e , a r g s = ( ) , k w a r g s = N o n e , * , d a e m o n = N o n e ) 一 個(gè) 線 程 通 過 調(diào) 用 其 s t a r t ( ) 方 法 來 激 活 , 每 個(gè) 線 程 對(duì) 象 只 能 調(diào) 用 一 次 s t a r t ( ) , 否 則 會(huì) 拋 出 R u n t i m e E r r o r 錯(cuò) 誤 。 假 設(shè) 我 們 現(xiàn) 在 有 一 場(chǎng) 跑 步 比 賽 , 共 有 5 名 運(yùn) 動(dòng) 員 參 加 。 發(fā) 令 槍 一 響 , 大 家 肯 定 同 時(shí) 開 始 跑 ( 并 發(fā) ) , 直 到 所 有 的 運(yùn) 動(dòng) 員 跑 完 , 比 賽 結(jié) 束 。 在 這 個(gè) 例 子 里 面 , 我 們 可 以 把 賽 場(chǎng) 看 成 是 一 個(gè) 進(jìn) 程 , 而 賽 場(chǎng) 里 面 的 每 個(gè) 運(yùn) 動(dòng) 員 占 用 一 條 跑 道 , 這 個(gè) 是 線 程 。 發(fā) 令 槍 一 響 , 所 有 線 程 啟 動(dòng) , 直 到 運(yùn) 行 結(jié) 束 。 讓 我 們 模 擬 一 下 上 述 場(chǎng) 景 , 我 們 可 以 用 兩 種 方 式 來 實(shí) 現(xiàn) 。 為 了 模 擬 跑 步 , 我 們 引 入 一 個(gè) r a n d o m 來 產(chǎn) 生 一 個(gè) 隨 機(jī) 事 件 , 然 后 使 用 t i m e . s l e e p 模 擬 跑 步 用 時(shí) , 盡 量 使 得 結(jié) 果 看 起 來 像 那 么 回 事 : ) 使 用 函 數(shù) 創(chuàng) 建 線 程 i m p o r t t i m e i m p o r t r a n d o m i m p o r t t h r e a d i n g d e f r u n n e r ( n a m e ) : t i m e _ c o s t = r a n d o m . r a n d i n t ( 7 , 1 2 ) p r i n t ( : 我 開 始 跑 了 . f o r m a t ( n a m e ) ) t i m e . s l e e p ( t i m e _ c o s t ) p r i n t ( : 我 跑 完 了 , 用 時(shí) 秒 . f o r m a t ( n a m e , t i m e _ c o s t ) ) i f _ _ n a m e _ _ = = _ _ m a i n _ _ : # 我 們 有 5 個(gè) 運(yùn) 動(dòng) 員 , 創(chuàng) 建 5 個(gè) 線 程 , 分 別 調(diào) 用 s t a r t 方 法 激 活 線 程 n a m e _ l i s t = [ 張 三 , 李 四 , 王 五 , 趙 六 , 何 二 ] f o r n a m e i n n a m e _ l i s t : t = t h r e a d i n g . T h r e a d ( t a r g e t = r u n n e r , a r g s = ( n a m e , ) ) t . s t a r t ( ) 在 這 個(gè) 例 子 中 : 我 們 定 義 了 一 個(gè) r u n n e r 函 數(shù) , 來 模 擬 跑 步 的 行 為 。 我 們 通 過 實(shí) 例 化 t h r e a d i n g . T h r e a d 類 來 創(chuàng) 建 線 程 。 在 這 個(gè) 例 子 中 , 由 于 r u n n e r 函 數(shù) 是 一 個(gè) 帶 參 數(shù) 的 函 數(shù) , 我 們 還 通 過 a r g s 把 參 數(shù) 傳 給 了 r u n n e r 最 后 分 別 調(diào) 用 線 程 對(duì) 象 的 s t a r t 方 法 , 來 開 啟 線 程 。 # 運(yùn) 行 結(jié) 果 張 三 : 我 開 始 跑 了 李 四 : 我 開 始 跑 了 王 五 : 我 開 始 跑 了 趙 六 : 我 開 始 跑 了 何 二 : 我 開 始 跑 了 李 四 : 我 跑 完 了 , 用 時(shí) 7 秒 趙 六 : 我 跑 完 了 , 用 時(shí) 8 秒 何 二 : 我 跑 完 了 , 用 時(shí) 8 秒 張 三 : 我 跑 完 了 , 用 時(shí) 1 1 秒 王 五 : 我 跑 完 了 , 用 時(shí) 1 1 秒 我 們 發(fā) 現(xiàn) , 幾 乎 第 一 時(shí) 間 , 5 個(gè) 人 都 打 印 了 我 開 始 跑 了 , 最 后 , 李 四 得 了 第 一 名 。 通 過 繼 承 T h r e a d 類 來 創(chuàng) 建 線 程 當(dāng) 然 , 我 們 也 可 以 編 寫 面 向 對(duì) 象 的 代 碼 , 通 過 繼 承 T h r e a d 類 來 實(shí) 現(xiàn) 上 面 的 功 能 。 i m p o r t t i m e i m p o r t r a n d o m i m p o r t t h r e a d i n g c l a s s R u n n e r ( t h r e a d i n g . T h r e a d ) : d e f _ _ i n i t _ _ ( s e l f , n a m e ) : s u p e r ( ) . _ _ i n i t _ _ ( n a m e = n a m e ) d e f r u n ( s e l f ) : t i m e _ c o s t = r a n d o m . r a n d i n t ( 7 , 1 2 ) p r i n t ( : 我 開 始 跑 了 . f o r m a t ( s e l f . n a m e ) ) t i m e . s l e e p ( t i m e _ c o s t ) p r i n t ( : 我 跑 完 了 , 用 時(shí) 秒 . f o r m a t ( s e l f . n a m e , t i m e _ c o s t ) ) i f _ _ n a m e _ _ = = _ _ m a i n _ _ : # 我 們 有 5 個(gè) 運(yùn) 動(dòng) 員 , 實(shí) 例 化 5 個(gè) R u n n e r 對(duì) 象 , 分 別 調(diào) 用 s t a r t 方 法 激 活 線 程 n a m e _ l i s t = [ 張 三 , 李 四 , 王 五 , 趙 六 , 何 二 ] f o r n a m e i n n a m e _ l i s t : t = R u n n e r ( n a m e ) t . s t a r t ( ) 在 這 個(gè) 例 子 中 : 我 們 創(chuàng) 建 了 一 個(gè) 類 R u n n e r , 讓 它 繼 承 自 t h r e a d i n g . T h r e a d 。 在 構(gòu) 造 器 中 我 們 使 用 s u p e r ( ) 來 調(diào) 用 父 類 的 構(gòu) 造 器 , 并 且 把 n a m e 傳 給 他 。 繼 承 T h r e a d 來 實(shí) 現(xiàn) 多 線 程 最 重 要 的 是 o v e r r i d e 父 類 的 r u n 方 法 , 我 們 把 跑 步 的 邏 輯 放 在 r u n 方 法 里 面 。 最 后 跟 上 個(gè) 例 子 的 邏 輯 類 似 , 只 是 我 們 通 過 實(shí) 例 化 R u n n e r 類 來 創(chuàng) 建 了 線 程 。 以 上 就 是 P y t h o n 創(chuàng) 建 線 程 的 兩 種 方 式 。 兩 種 方 式 如 何 選 擇 繼 承 T h r e a d 類 的 方 式 雖 然 可 行 , 但 是 這 樣 的 實(shí) 現(xiàn) 方 式 是 依 賴 t h r e a d i n g 庫 的 , 代 碼 只 能 在 線 程 上 下 文 中 使 用 。 而 第 一 種 方 式 , 實(shí) 現(xiàn) 的 代 碼 可 以 脫 離 線 程 上 下 文 , 可 以 在 其 他 上 下 文 使 用 。 如 果 業(yè) 務(wù) 邏 輯 簡(jiǎn) 單 , 推 薦 第 一 種 方 式 ( 使 用 函 數(shù) 創(chuàng) 建 線 程 ) 。 如 果 業(yè) 務(wù) 相 對(duì) 復(fù) 雜 , 但 只 跟 線 程 相 關(guān) , 推 薦 第 二 種 方 式 ( 通 過 繼 承 T h r e a d 類 來 創(chuàng) 建 線 程 ) 。 如 果 邏 輯 相 對(duì) 復(fù) 雜 , 又 不 是 純 線 程 業(yè) 務(wù) 的 , 可 以 實(shí) 現(xiàn) 一 個(gè) 類 , 還 是 以 實(shí) 例 化 T h r e a d 類 , t a r g e t 傳 參 數(shù) 的 方 式 去 做 , 比 如 : c l a s s R u n n e r ( o b j e c t ) : d e f _ _ i n i t _ _ ( s e l f , n a m e ) : s e l f . n a m e = n a m e d e f s t a r t ( s e l f ) : t = t h r e a d i n g . T h r e a d ( t a r g e t = s e l f . r u n ) t . s t a r t ( ) d e f r u n ( s e l f ) : # 線 程 邏 輯 p a s s . . . 節(jié) 外 生 枝 在 我 們 上 面 的 例 子 中 , 我 們 很 好 的 實(shí) 現(xiàn) 了 模 擬 賽 跑 的 一 個(gè) 效 果 。 但 是 別 高 興 的 太 早 , 這 時(shí) 候 主 辦 方 ( 產(chǎn) 品 經(jīng) 理 ) 找 過 來 了 , 說 你 程 序 是 跑 完 了 , 但 是 還 沒 有 宣 布 比 賽 結(jié) 束 , 最 后 你 得 打 印 出 一 行 比 賽 結(jié) 束 才 行 。 這 還 不 簡(jiǎn) 單 , 不 就 是 最 后 加 一 個(gè) 打 印 嗎 ? . . . i f _ _ n a m e _ _ = = _ _ m a i n _ _ : # 我 們 有 5 個(gè) 運(yùn) 動(dòng) 員 , 實(shí) 例 化 5 個(gè) R u n n e r 對(duì) 象 , 分 別 調(diào) 用 s t a r t 方 法 激 活 線 程 n a m e _ l i s t = [ 張 三 , 李 四 , 王 五 , 趙 六 , 何 二 ] f o r n a m e i n n a m e _ l i s t : t = R u n n e r ( n a m e ) t . s t a r t ( ) p r i n t ( 比 賽 結(jié) 束 ) 我 們 來 看 看 結(jié) 果 : 張 三 : 我 開 始 跑 了 李 四 : 我 開 始 跑 了 王 五 : 我 開 始 跑 了 趙 六 : 我 開 始 跑 了 何 二 : 我 開 始 跑 了 比 賽 結(jié) 束 王 五 : 我 跑 完 了 , 用 時(shí) 8 秒 張 三 : 我 跑 完 了 , 用 時(shí) 9 秒 李 四 : 我 跑 完 了 , 用 時(shí) 9 秒 何 二 : 我 跑 完 了 , 用 時(shí) 9 秒 趙 六 : 我 跑 完 了 , 用 時(shí) 1 2 秒 W T F , 大 寫 的 黑 人 問 號(hào) , 還 沒 跑 完 就 打 印 啦 , 這 不 科 學(xué) 啊 。 下 一 小 節(jié) , 讓 我 們 來 試 著 分 析 并 解 決 這 個(gè) 不 同 尋 常 的 問 題 吧 。 版 權(quán) 聲 明 ? 著 作 權(quán) 歸 作 者 所 有 允 許 自 由 轉(zhuǎn) 載 , 但 請(qǐng) 保 持 署 名 和 原 文 鏈 接 。 不 允 許 商 業(yè) 用 途 、 盈 利 行 為 及 衍 生 盈 利 行 為 。 圖 片 來 源 于 網(wǎng) 絡(luò) T h r e a d 對(duì) 象 T h r e a d 對(duì) 象 位 于 P y t h o n 標(biāo) 準(zhǔn) 庫 中 的 t h r e a d i n g . p y 中 。 它 的 初 始 化 方 法 是 這 樣 的 : d e f _ _ i n i t _ _ ( s e l f , g r o u p = N o n e , t a r g e t = N o n e , n a m e = N o n e , a r g s = ( ) , k w a r g s = N o n e , * , d a e m o n = N o n e ) 一 個(gè) 線 程 通 過 調(diào) 用 . . . 1 2 3 后 一 頁 ? 分 類 P y t h o n ( 1 0 ) G o l a n g ( 0 ) B l o c k c h a i n ( 0 ) A l g o r i t h m ( 1 ) 最 新 文 章 配 置 文 件 用 H O C O N / . c o n f 還 是 j s o n P y t h o n R e c o r d s 庫 使 用 詳 解 工 作 量 證 明 之 H a s h c a s h 算 法 , 了 解 一 下 ? Q u e u e : 應(yīng) 用 于 生 產(chǎn) 者 消 費(fèi) 者 模 式 的 P y t h o n 隊(duì) 列 深 入 淺 出 P y t h o n 多 線 程 ( 1 ) 創(chuàng) 建 線 程 深 入 淺 出 P y t h o n 多 線 程 ( 0 ) G I L 全 局 解 釋 器 鎖 的 前 世 今 生 P y t h o n 使 用 S A X 處 理 x m l 文 件 P y t h o n 抓 取 同 花 順 股 市 直 播 P y t h o n 開 發(fā) 的 一 些 技 巧 P y t h o n 對(duì) 象 的 賦 值 、 淺 拷 貝 和 深 拷 貝 機(jī) 制 最 近 回 復(fù) w a h p : o r a c l e 連 不 上 熱 搜 榜 : 文 章 還 不 錯(cuò) , 支 持 一 下 今 日 新 鮮 事 : 文 章 非 常 好 超 喜 歡 今 日 新 聞 : 文 章 不 錯(cuò) 支 持 一 下 吧 頭 條 新 聞 : 文 章 不 錯(cuò) 非 常 喜 歡 今 日 新 鮮 事 : 文 章 不 錯(cuò) 支 持 一 下 吧 熱 搜 榜 : 文 章 不 錯(cuò) 非 常 喜 歡 頭 條 : 文 章 不 錯(cuò) 支 持 一 下 吧 熱 搜 : 文 章 不 錯(cuò) 非 常 喜 歡 今 日 新 聞 : 文 章 不 錯(cuò) 非 常 喜 歡 其 它 登 錄 文 章 R S S 評(píng) 論 R S S T y p e c h o ? 2 0 2 4 人 生 苦 短 . 由 T y p e c h o 強(qiáng) 力 驅(qū) 動(dòng) . 蘇 I C P 備 1 6 0 6 4 0 7 0 號(hào)

站點(diǎn)概括

關(guān)于www.caorongduan.com說明:
www.caorongduan.com由網(wǎng)友主動(dòng)性提交被聚集網(wǎng)整理收錄的,聚集網(wǎng)僅提供www.caorongduan.com的基礎(chǔ)信息并免費(fèi)向大眾網(wǎng)友展示,www.caorongduan.com的是IP地址:114.215.114.30 [中國山東青島 阿里云],www.caorongduan.com的百度權(quán)重為0、百度手機(jī)權(quán)重為0、百度收錄為0條、360收錄為0條、搜狗收錄為0條、谷歌收錄為0條、百度來訪流量大約在-之間、百度手機(jī)端來訪流量大約在-之間、www.caorongduan.com的備案號(hào)是登錄可見、備案人叫登錄可見、被百度收錄的關(guān)鍵詞有0個(gè)、手機(jī)端關(guān)鍵詞有0個(gè)、該站點(diǎn)迄今為止已經(jīng)創(chuàng)建9年7個(gè)月5天。

內(nèi)容聲明:

1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請(qǐng)聯(lián)系我們進(jìn)行刪除處理!
3、本站不接受違規(guī)信息,如您發(fā)現(xiàn)違規(guī)內(nèi)容,請(qǐng)聯(lián)系我們進(jìn)行清除處理!
4、本文地址:http://www.hudongshop.com/links/6e87404eedb3198cea87.html,復(fù)制請(qǐng)保留版權(quán)鏈接!


溫馨小提示:在您的網(wǎng)站做上本站友情鏈接,訪問一次即可自動(dòng)收錄并自動(dòng)排在本站第一位!
您可能還喜歡

天津同仁堂集團(tuán)股份有限公司 | 片劑 | 硬膠囊劑 | 顆粒劑

天津同仁堂集團(tuán)股份有限公司|片劑|硬膠囊劑|顆粒劑_天津同仁堂集團(tuán)股份有限公司主營業(yè)務(wù)為中成藥的研發(fā)、生產(chǎn)和銷售,產(chǎn)品覆蓋片劑、硬膠囊劑、顆粒劑、糖漿劑、口服液、口服溶液劑、橡膠膏劑、散劑等8種劑型,涉及治療領(lǐng)域包括泌尿系統(tǒng)中的腎臟病、心腦血管疾病及周圍血管疾病等。

酷家樂 - 在線3D云設(shè)計(jì)平臺(tái)

酷家樂是一款在線高效云設(shè)計(jì)軟件,3步上手,10秒做出超清3D效果圖,平臺(tái)有著6500多萬的注冊(cè)用戶,合作企業(yè)達(dá)到了4萬多家,同時(shí)還為廣大業(yè)主朋友、房產(chǎn)從業(yè)者提供累計(jì)3.6億免費(fèi)設(shè)計(jì)素材及3億+設(shè)計(jì)方案,覆蓋全國90%戶型的戶型圖以及海量裝修效果圖、3D模型素材。

河北仕途升學(xué)_高考志愿填報(bào)_志愿填報(bào)_河北高考志愿填報(bào)_河北單招報(bào)志愿_仕途升學(xué)

河北仕途升學(xué)是一家從事高考志愿填報(bào)、單招報(bào)志愿咨詢的一站式服務(wù)機(jī)構(gòu)。致力于為更多學(xué)子提供志愿填報(bào)、單招報(bào)志愿,幫助學(xué)子做出多彩的規(guī)劃。仕途升學(xué)秉承“專業(yè)、精準(zhǔn)、服務(wù)”的理念,將企業(yè)管理咨詢的經(jīng)驗(yàn)融入高考志愿填報(bào)、單招報(bào)志愿,全方位評(píng)估大學(xué)錄取的可能,給予多元化的升學(xué)咨詢方案。仕途升學(xué)所做的是成為你的“燈塔”,幫助你看清自己,指導(dǎo)你未來5-10年的積累和發(fā)展。仕途升學(xué)相信,您的未來需要專家的深度參與規(guī)劃。

河南省政采管理咨詢中心

河南省政采管理咨詢中心擁有一支技術(shù)熟練、業(yè)務(wù)精專職業(yè)化的專業(yè)團(tuán)隊(duì)以及精通招標(biāo)、采購工作的資深專家?guī)礻?duì)伍,可為采購方提供從項(xiàng)目立項(xiàng)、報(bào)批、編制可研報(bào)告、編制技術(shù)和商務(wù)標(biāo)書、主持招標(biāo)、開標(biāo)、評(píng)標(biāo)活動(dòng)、進(jìn)行業(yè)務(wù)談判直至簽訂采購合同等全過程的服務(wù)和咨詢。 團(tuán)隊(duì)管理層均具有高級(jí)職稱,在招標(biāo)行業(yè)具有豐富的實(shí)踐經(jīng)驗(yàn),從業(yè)人員均通過政府采購從業(yè)人員的資格認(rèn)證,85%的人員擁有本科以上高等教育學(xué)歷,且60%的人員具有中高級(jí)專業(yè)職稱。對(duì)招標(biāo)采購文件編制、評(píng)標(biāo)程序、招投標(biāo)全過程均具有豐富的實(shí)踐經(jīng)驗(yàn),具有鮮明的人才、技術(shù)等綜合優(yōu)勢(shì)。公物團(tuán)隊(duì)與各地區(qū)政府機(jī)構(gòu)以及各領(lǐng)域建立了廣泛的聯(lián)系,建立了密切的合作關(guān)系,為公司業(yè)務(wù)發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。 公司具有優(yōu)越的辦公環(huán)境、先進(jìn)的信息網(wǎng)絡(luò)化辦公設(shè)施及設(shè)備,并擁有多種 專業(yè)技術(shù)專家?guī)臁K虚_標(biāo)大廳、評(píng)標(biāo)廳、接待室,均配有現(xiàn)代化的多媒體設(shè)備,可根據(jù)不同需求提供更有針對(duì)性的個(gè)性化項(xiàng)目招投標(biāo)服務(wù),為開評(píng)標(biāo)提供了場(chǎng)地保障。 公司嚴(yán)格遵守國家《政府采購法》、《招標(biāo)投標(biāo)法》等相關(guān)法律法規(guī),秉持“公開、公平、公正、誠實(shí)信用”的原則,建立起規(guī)范化、專業(yè)化、流程化的現(xiàn)代企業(yè)管理模式。 “熱情、嚴(yán)謹(jǐn)、客觀、公正”是我們的服務(wù)宗旨,我們將繼續(xù)發(fā)揮行業(yè)、人才、信息和技術(shù)等綜合優(yōu)勢(shì),以獨(dú)特的系統(tǒng)效應(yīng)為公共財(cái)政、為企事業(yè)單位、為我國的陽光工程做出更大的貢獻(xiàn)。

阿斯蘭品牌-納尼亞涂料,專業(yè)生產(chǎn)天然環(huán)保的凈味木蠟油、木油、水性漆和耐候色漿。

Narnia納尼亞涂料主要產(chǎn)品有環(huán)保健康的凈味內(nèi)墻漆、凈味木蠟油、耐候木油、水性漆和耐候色漿等,具有防水、防污、防腐、耐候、抗紫外線、延緩木材開裂變形等特性;納尼亞木蠟油產(chǎn)品采用天然植物油、蠟等原料精制而成。

恒信集團(tuán)

山東恒信集團(tuán)有限公司位于山東省濟(jì)寧市,是一家集煤化工、新型炭材料及高溫煤焦油資源綜合利用、以氫能為主線的清潔能源、針狀焦為主的新材料、綜合貿(mào)易、物流運(yùn)輸、房產(chǎn)置業(yè)、生態(tài)農(nóng)業(yè)等產(chǎn)業(yè)于一體的跨行業(yè)、跨地域、多元化發(fā)展的大型現(xiàn)代化企業(yè)集團(tuán)。旗下?lián)碛猩綎|恒信集團(tuán)焦化有限公司、山東榮信集團(tuán)有限公司、山東恒信科技發(fā)展有限公司、山東恒信高科有限公司、山東奔月新能源發(fā)展有限公司、山東恒信航運(yùn)有限公司、山東恒信置業(yè)有限公司和山東恒信生物科技有限公司等子公司,以及運(yùn)河碼頭兩座。

浙江溫州麗水松陽不銹鋼管廠家-304不銹鋼管|316L不銹鋼管|310S不銹鋼管-浙江至德鋼業(yè)有限公司

浙江至德鋼業(yè)有限公司是專業(yè)生產(chǎn)不銹鋼管廠家,始終以為客戶提供安全可靠不銹鋼管道及配件為宗旨,倉庫常備不銹鋼管現(xiàn)貨庫存1000余噸,鋼管價(jià)格實(shí)惠,可切割零售,常用規(guī)格當(dāng)天發(fā)貨。另可為客戶提供各種不銹鋼管焊接,折彎,鉆孔,切割,拋光,車床加工等配套服務(wù)。

隨機(jī)文章
Contactsprovider 的強(qiáng)大優(yōu)勢(shì):更有效地管理您的聯(lián)系人 (contact 翻譯)

Contactsprovider 的強(qiáng)大優(yōu)勢(shì):更有效地管理您的聯(lián)系人 (contact 翻譯)

在當(dāng)今信息爆炸的時(shí)代,聯(lián)系人管理已成為一項(xiàng)重要的任務(wù),有效管理您的聯(lián)系人可以幫助您建立牢固的專業(yè)關(guān)系,提高工作效率并促進(jìn)更好的溝通,而Contactsprovider正是一款專為滿足這些需求而設(shè)計(jì)的強(qiáng)大工具,Contactsprovider的主要優(yōu)勢(shì)無縫集成,Contactsprovider可以輕松與您的Google、Outlook、...。

互聯(lián)網(wǎng)資訊 2024-09-30 16:31:28

利用 ReportViewer 解鎖數(shù)據(jù)可視化的新高度 (利用rEw測(cè)試軟件自制聲卡頻響教準(zhǔn))

利用 ReportViewer 解鎖數(shù)據(jù)可視化的新高度 (利用rEw測(cè)試軟件自制聲卡頻響教準(zhǔn))

ReportViewer是一款由Microsoft開發(fā)的免費(fèi)開源的報(bào)告生成工具,它使開發(fā)人員能夠輕松地創(chuàng)建交互式、專業(yè)品質(zhì)的報(bào)告,即使他們沒有設(shè)計(jì)或報(bào)告編寫方面的經(jīng)驗(yàn),ReportViewer的優(yōu)點(diǎn)易于使用,ReportViewer的直觀界面和拖放功能使其易于使用,即使對(duì)于初學(xué)者也是如此,強(qiáng)大的功能,ReportViewer提供了一系...。

互聯(lián)網(wǎng)資訊 2024-09-27 19:29:32

調(diào)試器的魔力:揭示代碼內(nèi)部運(yùn)行機(jī)制,助你成為編程專家 (調(diào)試器的魔力是什么)

調(diào)試器的魔力:揭示代碼內(nèi)部運(yùn)行機(jī)制,助你成為編程專家 (調(diào)試器的魔力是什么)

提高代碼質(zhì)量,通過調(diào)試器識(shí)別和解決問題,你可以提高代碼的可靠性和魯棒性,減少壓力,調(diào)試器可以幫助你對(duì)代碼更有信心,因?yàn)槟阒揽梢钥煽康卣页霾⒔鉀Q問題,使用調(diào)試器的示例下面是一個(gè)使用調(diào)試器查找和解決問題的示例,代碼示例functionsum,a,b,returna,b,console.log,sum,1,2,預(yù)期結(jié)果,3...。

最新資訊 2024-09-26 17:10:48

從桌面端到移動(dòng)端:如何無縫過渡你的網(wǎng)站 (桌面移動(dòng)到)

從桌面端到移動(dòng)端:如何無縫過渡你的網(wǎng)站 (桌面移動(dòng)到)

隨著移動(dòng)設(shè)備的普及,網(wǎng)站需要適應(yīng)不同的屏幕尺寸才能為用戶提供良好的體驗(yàn),本文將介紹如何無縫地將你的網(wǎng)站從桌面端過渡到移動(dòng)端,1.響應(yīng)式設(shè)計(jì)響應(yīng)式設(shè)計(jì)是一種網(wǎng)頁設(shè)計(jì)技術(shù),可以讓網(wǎng)站自動(dòng)適應(yīng)不同的屏幕尺寸,它使用媒體查詢來根據(jù)設(shè)備的寬度調(diào)整布局和內(nèi)容,要實(shí)現(xiàn)響應(yīng)式設(shè)計(jì),可以采用以下方法,使用CSS網(wǎng)格系統(tǒng),如Bootstrap或Found...。

互聯(lián)網(wǎng)資訊 2024-09-17 05:56:40

C語言中背包問題的運(yùn)作原理及其解決方案 (c語言背包問題 貪心算法)

C語言中背包問題的運(yùn)作原理及其解決方案 (c語言背包問題 貪心算法)

背包問題簡(jiǎn)介背包問題是一個(gè)經(jīng)典的計(jì)算機(jī)科學(xué)問題,它描述了這樣的場(chǎng)景,有一個(gè)背包容量為W,里面裝有n件物品,每件物品的重量為w[i],價(jià)值為v[i],目標(biāo)是挑選一種物品的組合,使得背包中的總重量不超過W,同時(shí)總價(jià)值最大化,C語言中背包問題的運(yùn)作原理在C語言中,背包問題可以通過使用動(dòng)態(tài)規(guī)劃算法來解決,該算法將問題分解成較小的子問題,并逐步...。

本站公告 2024-09-12 20:48:07

掌握PHP商城開發(fā)的精髓:打造成功的電子商務(wù)解決方案 (php做商城會(huì)不安全嗎)

掌握PHP商城開發(fā)的精髓:打造成功的電子商務(wù)解決方案 (php做商城會(huì)不安全嗎)

在當(dāng)今數(shù)字時(shí)代,擁有一個(gè)強(qiáng)大的電子商務(wù)平臺(tái)對(duì)于企業(yè)在競(jìng)爭(zhēng)激烈的市場(chǎng)中取得成功至關(guān)重要,PHP,作為一種功能強(qiáng)大且流行的編程語言,是構(gòu)建安全、可擴(kuò)展的商城解決方案的理想選擇,PHP商城開發(fā)優(yōu)勢(shì)開源和免費(fèi),PHP是開源且免費(fèi)的,這意味著您無需支付任何許可費(fèi)用即可使用它,廣泛的社區(qū)支持,PHP擁有一個(gè)龐大且活躍的社區(qū),為開發(fā)人員提供支持、資...。

互聯(lián)網(wǎng)資訊 2024-09-11 19:43:38

Keras(kerastase什么牌子)

Keras(kerastase什么牌子)

Keras是什么,Keras是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)API,它基于TensorFlow,用于簡(jiǎn)化深度學(xué)習(xí)模型的開發(fā),Keras的主要特點(diǎn)包括,用戶友好的界面,易于使用和理解模塊化設(shè)計(jì),使您可以輕松地定制模型支持各種深度學(xué)習(xí)任務(wù),包括圖像分類、自然語言處理和時(shí)間序列預(yù)測(cè)與其他庫和框架集成,例如NumPy、Pandas和Scikit,learn...。

互聯(lián)網(wǎng)資訊 2024-09-08 17:56:40

告別編碼煩惱:選擇最適合你的 C 語言編輯器 (告別的代碼)

告別編碼煩惱:選擇最適合你的 C 語言編輯器 (告別的代碼)

C語言作為一種低級(jí)語言,廣泛應(yīng)用于操作系統(tǒng)、嵌入式系統(tǒng)等領(lǐng)域,對(duì)于C語言開發(fā)者來說,選擇一款合適的編輯器至關(guān)重要,本文將介紹適用于C語言開發(fā)的各種編輯器,幫助你告別編碼煩惱,編輯器選擇因素在選擇C語言編輯器時(shí),需要考慮以下因素,語法高亮,語法高亮可以幫助開發(fā)者快速識(shí)別代碼中的不同元素,選擇最適合你的編輯器可以大幅提高你的C語言開發(fā)效率...。

本站公告 2024-09-08 09:56:46

洞悉Java語言的本質(zhì):10個(gè)不可或缺的特性,定義其卓越 (洞悉的意思)

洞悉Java語言的本質(zhì):10個(gè)不可或缺的特性,定義其卓越 (洞悉的意思)

引言作為當(dāng)今最流行的編程語言之一,Java因其卓越的特性而廣受歡迎,使其成為各種企業(yè)應(yīng)用的理想選擇,本文將深入探討定義Java卓越性的10個(gè)不可或缺的特性,幫助您充分了解這門強(qiáng)大的語言,1.平臺(tái)獨(dú)立性Java的關(guān)鍵特性之一是跨平臺(tái)兼容性,它遵循一次編寫,隨處運(yùn)行的原則,意味著在任何支持Java虛擬機(jī),JVM,的平臺(tái)上都可以運(yùn)行Java...。

最新資訊 2024-09-07 06:50:55

響應(yīng)式建站源碼:讓你的網(wǎng)站在所有設(shè)備上完美呈現(xiàn) (響應(yīng)式建站什么意思)

響應(yīng)式建站源碼:讓你的網(wǎng)站在所有設(shè)備上完美呈現(xiàn) (響應(yīng)式建站什么意思)

什么是響應(yīng)式建站,響應(yīng)式建站是指使用一種專門的網(wǎng)站設(shè)計(jì)方法,使網(wǎng)站能夠在各種設(shè)備,例如臺(tái)式機(jī)、筆記本電腦、平板電腦和智能手機(jī),上以最佳方式呈現(xiàn),它側(cè)重于創(chuàng)建靈活的頁面布局,可以根據(jù)屏幕大小和方向自動(dòng)調(diào)整,為什么響應(yīng)式建站很重要,增強(qiáng)的用戶體驗(yàn),響應(yīng)式網(wǎng)站為用戶提供了始終如一且愉快的體驗(yàn),無論他們使用何種設(shè)備,提高搜索引擎排名,谷歌和其...。

最新資訊 2024-09-06 16:50:21

紅衣男事件:一場(chǎng)令人不安的網(wǎng)絡(luò)謎團(tuán) (08年紅衣少年案)

紅衣男事件:一場(chǎng)令人不安的網(wǎng)絡(luò)謎團(tuán) (08年紅衣少年案)

紅衣男事件,又稱08年紅衣少年案,是一起發(fā)生在2008年,至今尚未解決的網(wǎng)絡(luò)謎團(tuán),起源于一段在網(wǎng)上流傳的恐怖視頻,視頻內(nèi)容在這段視頻中,一個(gè)穿著紅色連帽衫的男孩在漆黑的森林中行走,男孩的頭部沒有五官,只是空洞的白色,視頻中沒有聲音,只有男孩腳步聲和樹葉沙沙作響的聲音,最初的發(fā)現(xiàn)這段視頻最早出現(xiàn)在4chan網(wǎng)站上,并迅速在網(wǎng)絡(luò)上流傳開,...。

互聯(lián)網(wǎng)資訊 2024-09-04 02:14:11

南京碎尸案:慘絕人寰的細(xì)節(jié)曝光 (南京碎尸案破了嗎)

南京碎尸案:慘絕人寰的細(xì)節(jié)曝光 (南京碎尸案破了嗎)

2022年10月28日南京碎尸案于2022年7月21日發(fā)生,是一起令人發(fā)指的兇殺案,該案的犯罪嫌疑人洪某因涉嫌故意殺人罪已被警方逮捕,案件經(jīng)過2022年7月21日,南京警方接到報(bào)警稱,在某小區(qū)內(nèi)發(fā)現(xiàn)一名被肢解的女性尸體,經(jīng)過調(diào)查,警方確定受害人系28歲的李某某,經(jīng)過縝密偵查,警方很快鎖定犯罪嫌疑人洪某,并于當(dāng)日將其抓獲,經(jīng)審訊,洪某對(duì)...。

互聯(lián)網(wǎng)資訊 2024-09-03 05:13:46

Copyright ? 2025 聚集網(wǎng) All Rights Reserved
此內(nèi)容系本站根據(jù)來路自動(dòng)抓取的結(jié)果,不代表本站贊成被顯示網(wǎng)站的內(nèi)容或立場(chǎng)。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術(shù)支持:聚集網(wǎng)

国产中文字幕免费观看_国产高清精品软男同_日韩免费视频播放_亚洲午夜激情
久久久av免费| 国产精品视频一区二区三区四区五区| 欧美日韩二三区| 久久精品中文字幕一区二区三区| 久久久精品在线观看| 日韩精品极品视频在线观看免费| 97成人在线视频| 午夜精品一区二区三区在线视频 | 国语对白做受xxxxx在线中国| 色综合91久久精品中文字幕 | 天天久久人人| 久久精品91久久香蕉加勒比| 黄色激情在线视频| 日本一区二区三区视频在线播放| av天堂永久资源网| 日韩精品久久一区二区三区| 欧美久久久久久| 两个人的视频www国产精品| 久久久综合免费视频| 高清视频欧美一级| 日韩欧美亚洲v片| 亚洲色图自拍| 国产999精品视频| 热久久这里只有精品| 日本精品免费观看| 91久久精品www人人做人人爽| 国产精品一区二区在线观看| 91九色视频在线观看| 国产精品亚洲一区二区三区| 欧美亚洲一级片| 欧美理论一区二区| 欧美精品成人91久久久久久久| 欧美亚洲国产视频小说| www.av中文字幕| 亚洲a∨一区二区三区| 国产精品亚洲αv天堂无码| 亚洲色精品三区二区一区| 国产精品亚洲自拍| 肉大捧一出免费观看网站在线播放 | 91av在线播放| 欧美激情亚洲综合一区| 91精品久久久久久久久久久 | 亚洲综合色激情五月| 91精品国产自产在线老师啪| 秋霞久久久久久一区二区| 国产精品国产精品国产专区蜜臀ah | 欧美一区二区三区免费观看| 日韩精品一区二区三区色欲av| 亚洲精品视频一区二区三区| 午夜啪啪福利视频| 亚洲aa中文字幕| 久久久久久高清| 国产精品精品视频一区二区三区| 91干在线观看| 青青青国产精品一区二区| 日本亚洲欧洲色α| 亚洲国产精品毛片| 久久伊人精品视频| 久久精品在线播放| 久久这里只有精品99| 中文字幕一区二区三区四区五区六区 | 欧美视频小说| 黄色一级视频在线播放| 奇米888一区二区三区| 欧美牲交a欧美牲交aⅴ免费真| 虎白女粉嫩尤物福利视频| 免费h精品视频在线播放| 亚洲精品久久久久久一区二区 | 欧美亚洲激情在线| 国产精品自拍网| 加勒比在线一区二区三区观看| 久久久久天天天天| 国产freexxxx性播放麻豆| 91国产中文字幕| 国产久一道中文一区| 国产精品一区在线免费观看| 精品视频一区二区| 日韩视频中文字幕| 国产aaa精品| 日韩欧美99| 欧美又大粗又爽又黄大片视频| 欧美亚洲第一区| 久久久久久亚洲| 久久国产精品亚洲| 国内精品久久久久影院优| www日韩视频| 久久视频在线观看中文字幕| 久久riav二区三区| 久久香蕉国产线看观看网| 精品国产免费久久久久久尖叫| 国产精品女主播视频| 99精品视频在线看| 久久久久久久香蕉| 亚洲资源在线看| 日本一区免费在线观看| 日本久久91av| 国产福利一区二区三区在线观看| 精品国产一区二区三区久久久久久| 日本福利视频网站| 99精品视频在线看| 一区二区三区久久网| 亚洲 欧美 综合 另类 中字| 国产欧美日韩视频一区二区三区| 成人精品久久久| 欧美一级视频免费看| 91精品久久香蕉国产线看观看| 亚洲三级一区| 久久久亚洲影院你懂的| 日本韩国欧美精品大片卡二| www.欧美精品| 国产日韩一区二区在线观看| 国产精品美女xx| 成人免费在线网址| 亚洲中文字幕无码av永久| 国产不卡精品视男人的天堂| 又大又硬又爽免费视频| 国产乱淫av片杨贵妃| 国产精品毛片一区视频| 国产精自产拍久久久久久| 中文字幕一区二区三区乱码 | 91精品国产综合久久久久久久久| 亚洲精品在线视频观看| 久久久亚洲精品无码| 色之综合天天综合色天天棕色| 日韩中文字幕免费看| 麻豆av免费在线| 欧美婷婷久久| 日韩亚洲欧美视频| 精品亚洲欧美日韩| 国产精品91久久久| 国内一区二区在线视频观看| 天堂av在线中文| 中文字幕日本最新乱码视频| 久久这里只有精品18| 国产欧美一区二区在线播放| 欧美影视一区二区| 久久成人一区二区| 国产精品一区二区在线| 亚洲乱码中文字幕久久孕妇黑人| 久久国产精品影视| 国产精品电影一区| 国产精品人成电影| 色噜噜狠狠狠综合曰曰曰| 91传媒视频免费| 99久久国产综合精品五月天喷水| 欧美在线播放cccc| 国产欧美日韩网站| 国产欧亚日韩视频| 天天综合五月天| 国产精品欧美日韩| 国产免费黄色小视频| 欧美二区三区在线| 国内精品视频在线| 女同一区二区| 亚洲精品日韩激情在线电影| 日本三级久久久| 肉大捧一出免费观看网站在线播放| 一本久道高清无码视频| 国产精品成人一区| 蜜臀久久99精品久久久无需会员| 欧美成人中文字幕在线| 久久激情视频免费观看| 精品久久久久久亚洲| 国产精品高潮呻吟久久av野狼| 久久亚洲精品欧美| 九九久久综合网站| 天堂√在线观看一区二区| 欧美在线观看一区二区三区| 欧美精品免费观看二区| 欧美精品亚洲| 91久热免费在线视频| 国产在线视频欧美一区二区三区| 日韩欧美手机在线| 黄色一级片av| 国产chinese精品一区二区| 久久这里只有精品99| 亚洲高清资源综合久久精品| 欧美午夜小视频| 人妻久久久一区二区三区| 亚洲成色www久久网站| 亚洲专区在线视频| 欧美区二区三区| 国产精品视频免费一区二区三区 | 国产麻豆电影在线观看| 久久久久久国产免费| 亚洲精品成人自拍| 美女被啪啪一区二区| 日韩视频免费大全中文字幕| 欧美怡春院一区二区三区| 亚洲精品欧洲精品| 日日骚一区二区网站| 欧美日韩精品一区| 国产一区二区自拍| 久久av一区二区三区漫画| 美女av一区二区| 国产欧美一区二区视频| 日韩在线视频网站| 日韩av成人在线观看| 蜜桃久久影院| 国产精品成人免费电影|