当前位置: 首页 > wzjs >正文

南坪做网站如何让我们的网站新闻被百度新闻收录

南坪做网站,如何让我们的网站新闻被百度新闻收录,做任务送科比网站,广西网站建设网址我是写Linux后端的(golang、c、py),后端缓存算法通常是指的是内存里面的lru、或diskqueue,都是独立使用。 很少有用内存lru与disklru结合的场景需求。近段时间研究android开发,里面有一些设计思想值得后端学习。 写这…

我是写Linux后端的(golang、c++、py),后端缓存算法通常是指的是内存里面的lru、或diskqueue,都是独立使用。 很少有用内存lru与disklru结合的场景需求。近段时间研究android开发,里面有一些设计思想值得后端学习。

写这篇文章的原因:
看到了android开发里面的一个片段
在这里插入图片描述

于是在画板里面手绘下图:
在这里插入图片描述

为了简化测试,用Python编程语言实现

import tkinter as tk
from tkinter import ttk, messagebox
from PIL import Image, ImageTk, ImageOps
import requests
from io import BytesIO
import threading
import queue
from functools import lru_cache
from diskcache import Cache
import os# 配置缓存
CACHE_DIR = "image_cache"
os.makedirs(CACHE_DIR, exist_ok=True)
disk_cache = Cache(CACHE_DIR)  # 磁盘缓存(自动管理容量)@lru_cache(maxsize=5)  # LRU缓存(仅记录URL)
def get_from_lru(url):passclass ImageLoader:def __init__(self):self.queue = queue.Queue()self.thread = threading.Thread(target=self._worker, daemon=True)self.thread.start()def load(self, url, callback):self.queue.put((url, callback))def _worker(self):while True:url, callback = self.queue.get()data = Nonecache_type = "error"# 检查LRUif get_from_lru.cache_info().currsize > 0:data = disk_cache.get(url)if data:cache_type = "lru"# 检查磁盘if not data:data = disk_cache.get(url)if data:cache_type = "disk"get_from_lru(url)  # 更新LRU标记# 网络加载if not data:try:res = requests.get(url, timeout=10)res.raise_for_status()data = res.contentcache_type = "network"disk_cache.set(url, data)  # 自动处理容量限制get_from_lru(url)except Exception as e:callback(None, cache_type)continue# 返回结果try:img = Image.open(BytesIO(data))callback(img, cache_type)except:callback(None, "error")class ImageViewerApp:def __init__(self, root):self.root = rootself.root.title("图片查看器")self.urls = [f"https://picsum.photos/seed/img{i}/800/600" for i in range(1, 11)]self.current = 0self.loader = ImageLoader()self._create_widgets()def _create_widgets(self):frame = ttk.Frame(self.root, padding=10)frame.pack(fill=tk.BOTH, expand=True)# 图片显示区域self.img_label = ttk.Label(frame)self.img_label.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)# 导航按钮btn_frame = ttk.Frame(frame)btn_frame.pack(fill=tk.X, pady=5)self.prev_btn = ttk.Button(btn_frame, text="◀ 上一张", command=self.prev_image)self.prev_btn.pack(side=tk.LEFT, padx=5)self.next_btn = ttk.Button(btn_frame, text="下一张 ▶", command=self.next_image)self.next_btn.pack(side=tk.RIGHT, padx=5)# 缓存状态self.status_label = ttk.Label(frame, text="缓存状态: LRU(0/5), 磁盘(0/8)")self.status_label.pack(fill=tk.X, pady=2)# 加载指示器self.loading = ttk.Label(self.img_label, text="加载中...", font=("SimHei", 12))def _load_image(self, index):self.current = indexurl = self.urls[index]self.status_label.config(text="加载中...")self.loading.place(relx=0.5, rely=0.5, anchor="center")self.prev_btn.config(state=tk.DISABLED)self.next_btn.config(state=tk.DISABLED)self.loader.load(url, self._on_loaded)def _on_loaded(self, img, cache_type):self.root.after(0, lambda: self._update_display(img, cache_type))def _update_display(self, img, cache_type):self.loading.place_forget()self.prev_btn.config(state=tk.NORMAL)self.next_btn.config(state=tk.NORMAL)if img:# 调整图片大小max_w = self.img_label.winfo_width() - 20max_h = self.img_label.winfo_height() - 20img = ImageOps.contain(img, (max_w or 500, max_h or 400))self.photo = ImageTk.PhotoImage(img)self.img_label.config(image=self.photo)# 更新缓存状态lru = get_from_lru.cache_info().currsizedisk = len(disk_cache)self.status_label.config(text=f"缓存状态: LRU({lru}/5) [{cache_type.upper()}], 磁盘({disk}/8)")else:messagebox.showerror("错误", "无法加载图片")def prev_image(self):self._load_image((self.current - 1) % 10)def next_image(self):self._load_image((self.current + 1) % 10)if __name__ == "__main__":root = tk.Tk()root.geometry("800x600")app = ImageViewerApp(root)app._load_image(0)root.mainloop()

测试效果:
经过缓存的图片从内存或文件加载,速度快了很多。 用空间换时间_
在这里插入图片描述
在这里插入图片描述


文章转载自:

http://iRTUZAne.wpmqq.cn
http://2qlgys4U.wpmqq.cn
http://oMJKu2Us.wpmqq.cn
http://PYb0yvbz.wpmqq.cn
http://jiat45u9.wpmqq.cn
http://PTnEn2s3.wpmqq.cn
http://YfEJG54T.wpmqq.cn
http://X0PhH7Hq.wpmqq.cn
http://CqA6McXT.wpmqq.cn
http://5sXsjT4a.wpmqq.cn
http://992UBb34.wpmqq.cn
http://oPpZlt6s.wpmqq.cn
http://IuMX4hrd.wpmqq.cn
http://EQ5sowDQ.wpmqq.cn
http://jEpwt5HH.wpmqq.cn
http://rFu22nZV.wpmqq.cn
http://rlEFbGtI.wpmqq.cn
http://l3uyU3w5.wpmqq.cn
http://l0a2McOk.wpmqq.cn
http://JiJFfvZy.wpmqq.cn
http://p22Vf3iI.wpmqq.cn
http://JUmCOCxz.wpmqq.cn
http://E8YlEyPQ.wpmqq.cn
http://rs7qTfgn.wpmqq.cn
http://kDoKU0oV.wpmqq.cn
http://67VTK3Fi.wpmqq.cn
http://33uPCew1.wpmqq.cn
http://fL62KwXr.wpmqq.cn
http://6hUrsRrc.wpmqq.cn
http://s4grahTG.wpmqq.cn
http://www.dtcms.com/wzjs/697648.html

相关文章:

  • 谷歌排名网站优化微信公众号的激活方法
  • 重庆网站建设 菠拿拿平台骗了钱
  • 广州市公司网站建设报价培训学校机构有哪些
  • 公司网站建设怎么弄聚诚网站建设
  • 网站建设小结报告新手淘宝客在百度推广网站么做
  • 答题助手网站怎么做的网站建设技术优势
  • 做汽配网站网站缩写的英文
  • seo学途论坛网台州关键词优化推荐
  • 东莞南城网站建设价格iis做网站视
  • 网络营销咨询机构外贸网站seo教程
  • 视频模板网站代做ppt
  • 拍卖网站开发多少钱免费搭建个人服务器
  • 网站备案相关前置许可济源做网站的好公司
  • 江西龙峰建设集团的网站网红营销方式
  • 网站做美食视频挣钱吗购物网站怎么做代码
  • 公司网站自己怎么建立凡客vancl
  • 石河建设技校网站网站建设区别
  • 老区建设网站深圳网站设计九曲网站建设
  • 做网站需要php吗怎样添加音乐到wordpress
  • 不属于c2c网站的是56账号登录的网址
  • 长沙 网站设计 公司价格台中网站建设
  • 贵阳做网站方舟网络给窗帘做网站
  • 套餐型网站建设合同网站建设的工作总结
  • 免费网站注册免费创建网站重装没有设置wordpress
  • 国内做家具外贸的网站网站建设ppt方案模板
  • 长沙制作网站设计多少钱苏宁易购网站设计怎么制作
  • 做网站宣传图片网址大全黄页男女
  • 响应式网站建设一般多少钱盐城网络
  • 哈尔滨网站建设学校查看wordpress管理员
  • 帮人做网站在徐州被敲诈五万如何自己做网站建设