E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Java并发编程学习
【
Java并发
】聊聊ReentrantReadWriteLock锁降级和StampedLock邮戳锁
面试题1.你说你用过读写锁,锁饥饿问题是什么?2.有没有比读写锁更快的锁?3.StampedLock知道吗?(邮戳锁/票据锁)4.ReentrantReadWriteLock有锁降级机制策略你知道吗?在并发编程领域,有多线程进行提升整体性能,但是却引入了共享数据安全性问题。基本就是无锁编程下的单线程操作,有互斥同步锁操作,但是性能不高,并且同一时刻只有一个线程可以操作资源类。但是对于大多数常见下,
qxlxi
·
2023-09-11 02:55
#
并发编程
java
开发语言
Java并发
程序设计-总览学习
1、使用线程的一些经验设置名称无论何种方式,启动一个线程,就要给它一个名字!这对排错诊断系统监控有帮助。否则诊断问题时,无法直观知道某个线程的用途。响应中断程序应该对线程中断作出恰当的响应。使用ThreadLocal它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变
·
2023-09-10 21:47
java并发编程
java并发
编程 LinkedBlockingQueue详解
文章目录前言1LinkedBlockingQueue是什么2核心属性详解3核心方法详解3.1offer(Ee)3.2put(Ee)3.3take()3.4poll()3.5peek()3.6remove(Objecto)3.7drainTo(Collectionc,intmaxElements)总结前言学习LinkedBlockingQueue需要掌握ReentrantLock原理,或者了解其使用
java爬坑中
·
2023-09-10 21:58
java并发编程
java
java并发
编程 LinkedBlockingDeque详解
文章目录1LinkedBlockingDeque是什么2核心属性详解3核心方法详解3.1addFirst(Ee)3.2offerFirst(Ee)3.3putFirst(Ee)3.4removeFirst()3.5pollFirst()3.6takeFirst()3.7其他4总结1LinkedBlockingDeque是什么首先queue是一种数据结构,一个集合中,先进后出,有两种实现的方式,数组
java爬坑中
·
2023-09-10 21:58
java并发编程
java
java并发
编程 PriorityBlockingQueue详解
文章目录1PriorityBlockingQueue是什么2核心属性详解3核心方法详解3.1offer(Ee)3.2poll()3.3take()3.4peek()4总结1PriorityBlockingQueue是什么PriorityBlockingQueue类上的注释描述:一个无界阻塞队列,它使用与类PriorityQueue相同的排序规则,并提供阻塞检索操作。PriorityQueue又是什
java爬坑中
·
2023-09-10 21:58
java并发编程
java
java并发
编程 ConcurrentLinkedQueue详解
文章目录1ConcurrentLinkedQueue是什么2核心属性详解3核心方法详解3.1add(Ee)3.2offer(Ee)3.3poll()3.4size()3.5并发情况分析4总结1ConcurrentLinkedQueue是什么ConcurrentLinkedQueue是一个无界的并发队列,和LinkedBlockingQueue相比,它是通过完全的cas实现的,是非阻塞的。Linke
java爬坑中
·
2023-09-10 21:57
java并发编程
java
操作系统强化认识之Shell
编程学习
与总结
目录1.Shell的概述2.Shell脚本入门3.变量3.1.系统预定义变量3.2.自定义变量3.3.特殊变量4.运算符5.条件判断6.流程控制6.1.if判断6.2.case语句6.3.for循环6.4.while循环7.read读取控制台输入8.函数8.1.系统函数8.2.自定义函数9.正则表示式入门10.文本处理工具10.1.cut10.2.awk11.综合应用案例11.1.归档文件11.2
Williamtym
·
2023-09-10 20:59
Linux操作系统
scala
开发语言
后端
linux
操作系统
shell
bash
Java并发
编程-认识Java里的线程
上一篇我们已经了解进程和线程的相关概念CPU线程调度的基本原理,这回我们来看看java是怎么支持多线程的。任何一个程序都必须要创建线程,特别是Java。不管任何程序都必须启动一个main函数的主线程;JavaWeb开发里面的定时任务、定时器、JSP和Servlet、异步消息处理机制,远程访问接口RM等都离不开线程。文章目录1.Java程序天生就是多线程的2.创建和启动线程3.带有返回值的线程4.线
千月落
·
2023-09-10 20:55
Java
多线程
thread
并发编程
Java并发
(三):Java内存模型
一.基础并发编程中的两个关键问题:线程间如何通信和线程间如何同步。并发模型通信同步共享内存的并发模型线程间共享公共状态,通过读写公共状态隐式通信显式指定方法或代码在线程间互斥执行消息传递的并发模型线程间通过发送消息来显式通信消息的发送必须在消息接收前,因此同步是隐式的Java的并发采用共享内存模型。1.Java内存模型的抽象结构Java中,所有实例域(对象)、静态域(类)和数组元素都存储在堆内存中
Jorvi
·
2023-09-10 16:59
Linux高性能服务器
编程学习
笔记(一)
第5章Linux网络编程基础APILinux高性能服务器
编程学习
笔记5.1socket地址API5.1.1主机字节序和网络字节序主机字节序–>小端低–>低网络字节序–>大端高–>低主机字节序和网路字节序转换
RadiumYang
·
2023-09-10 13:09
笔记
4种线程池和7种并发队列
一、7种并发队列
Java并发
包中的阻塞队列一共7个,当然他们都是线程安全的。ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列。
红烧鸡翅膀_我喜欢吃
·
2023-09-10 11:50
多线程大汇总
如果你觉得此文很简单,那推荐你看看
Java并发
包的的线程池(
Java并发
编程与技术内幕:线程池深入理解),或者看这个专栏:
Java并发
编程与技术内幕。你将会对Java里头的高并发场景下的线程
雪飞静
·
2023-09-10 09:52
【深入java并发编程吧】
多线程
了解 Java 并发编程中的 volatile 关键字
@作者:一恍过去@主页:https://blog.csdn.net/zhuocailing3390@社区:Java技术栈交流@主题:了解
Java并发
编程中的volatile关键字⏱️@创作时间:2023
一恍过去
·
2023-09-10 01:36
java
开发语言
jvm
编程好书推荐
编程学习
好书推介一、WEB应用开发人员必修功课类1、XHTML教程(XHTML)作者:ChelseaValentine,ChrisMinnickNewRiders原版,人民邮电出版社中文版是的,今天你最应该学习的是
weixin_34406796
·
2023-09-10 01:02
嵌入式
操作系统
设计模式
java 并发包学习_
java并发
包学习系列:概述
为什么要学习并发举个例子:假如12亿每人1k的数据量,就是11T多的数据…..多长时间会到账12亿?会不会发生拥堵?服务器是否能承受?看到一个段子,想到的。。。如下:“今天和一哥们聊天,聊着聊着聊到钱的方面,当时我就说,全世界60亿人,要是每人给我一块钱那不就发财了啊.哥们立马用鄙视的眼神看我,全世界60亿人,平均一人给你钱需要2秒,也就是120亿秒,2亿分钟,330多万个小时,14万天,380年
weixin_39881575
·
2023-09-09 21:05
java
并发包学习
阻塞队列之ArrayBlockingQueue源码解析
之前的文章我们学了ConcurrentHashMap、ConcurrentLinkedQueue等线程安全容器,而且也说了
Java并发
包中的Concurent开头的并发容器都是非阻塞的,是使用CAS自旋操作实现的线程安全
七哥聊编程
·
2023-09-09 21:35
Java进阶必看
java
多线程
队列
阻塞队列
Java并发
java并发
编程爬虫_开发一款开源爬虫框架系列(三):聊聊并发包中的队列(Queue)...
说到队列尤其是阻塞队列,不得不说jdk的并发包(java.util.concurrent)中的相关数据结构,今天我们就来对java(JDK1.7)中的队列做一个总结。1、Queue队列接口,定义了队列基本的接口方法前两个方法是往队列塞数据,在队列空间不足的情况下add会抛出异常,而offer会返回false。poll和peek的区别是后者不会从队列中移除元素。2、BlockingQueue、Blo
weixin_34701481
·
2023-09-09 21:35
java并发编程爬虫
Java并发
编程:阻塞队列
在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeu
小兮雯学Java
·
2023-09-09 21:04
java
开发语言
后端
程序人生
经验分享
聊聊 JUC 并发包
今天开始我们聊聊
Java并发
工具包中提供的一些工具类,本文主要从并发同步容器和并发集合工具角度入手,简单介绍下相关API的用法与部分实现原理,旨在帮助大家更好的使用和理解JUC工具类。
a781613438
·
2023-09-09 21:34
面试
java
git
Java并发
包源码学习系列:基于CAS非阻塞并发队列ConcurrentLinkedQueue源码解析
文章目录非阻塞并发队列ConcurrentLinkedQueue概述结构组成基本不变式head的不变式与可变式tail的不变式与可变式offer操作源码解析图解offer操作JDK1.6hops设计意图poll操作源码解析图解poll操作总结参考阅读非阻塞并发队列ConcurrentLinkedQueue概述我们之前花了很多时间了解学习BlockingQueue阻塞队列接口下的各种实现,也大概对阻
天乔巴夏丶
·
2023-09-09 21:02
Java并发编程
队列
算法
编程语言
链表
[
java并发
编程]基于信号量semaphore实现限流器
[TOC]一、什么是信号量“信号量”在编程术语中使用单词semaphore,那什么是“信号量”?信号量就好比你家厨房入口架子上摆了三把锅。如果你的孩子热奶拿走一把,你的老婆热汤拿走一把,你的妈妈做菜拿走一把,你想煮面条就没有锅了。当你看到这种情况,你就不会进入厨房了,你处于等待状态。也就说厨房按照“锅的数量”作为信号量,只能容纳三个人(线程)。当你的老婆热完汤之后,把锅重新放回架子上,你就可以去获
字母哥课堂
·
2023-09-09 18:08
Java并发
基石——CAS是如何实现的?
目录1.什么是CAS?2.Java中关于CAS的API在哪里?3.CASAPI方法和参数解析4.CAS的底层实现5.CAS是如何保证多核线程安全的?6.CAS的缺点?7.如何避免ABA问题?1.什么是CAS?CAS的全程是"CompareAndSwap",翻译过来就是"比较和替换"。CAS的操作包含三个操作数——内存地址,期望值,新值。如果内存位置的值与期望值匹配,那么处理器就会自动将该位置的值更
程序猿ZhangSir
·
2023-09-09 15:18
java
开发语言
【备战秋招】2022年Java后端面试题,查缺补漏,啃完16套专题技术栈
前言小编分享的这份2022年Java秋招备战面试题总计有1000多道面试题,包含了MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、
Java
「已注销」
·
2023-09-09 08:21
java
面试
开发语言
Java并发
编程AQS
AQSAQS是多线程同步器,它是J.U.C包中多个组件的底层实现,如Lock、CountDownLatch、Semaphore等都用到了AQS.锁机制从本质上来说,AQS提供了两种锁机制,分别是排它锁,和共享锁。排他锁排它锁,就是存在多线程竞争同一共享资源时,同一时刻只允许一个线程访问该共享资源,也就是多个线程中只能有一个线程获得锁资源,比如Lock中的ReentrantLock重入锁实现就是用到
无语堵上西楼
·
2023-09-09 00:23
java面试题
java
开发语言
jvm
Java并发
编程面试题
基础知识并发编程的优缺点为什么要使用并发编程(并发编程的优点)充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升方便进行业务拆分,提升系统并发能力和性能:在特殊的业务场景下,先天的就适合于并发编程。现在的系统动不动就要求百万级甚至千万级的并发量,而多线程并发编程正是开发高并发系统的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能。面对复杂
小怪兽打葫芦娃
·
2023-09-08 18:00
JAVA面试-基础篇
java
面试
jvm
java
编程学习
:用java进行面向对象编程,面向对象是什么意思
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。给你学习路线:html-css-js-jq-javase-数据库-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmv
Java小辰
·
2023-09-08 14:31
Java并发
编程常识
还记得本文开篇的那句话吗?https://www.iteye.com/blog/javatar-1963774这里的PPT链接失效了,我历尽千辛万苦,搜索找到了一份。一共18页,一一展示一下。有的地方是纯知识点,有的地方是代码。反正我觉得我看明白了,有必要讲一下的地方。我就在图片下面进行一个简短的描述。走起。>need-to-insert-img>need-to-insert-img稍微解释一下这
半壶雪
·
2023-09-08 12:10
Java并发
编程(四):原子操作CAS
一、什么是原子操作?如何实现原子操作?假定有两个操作A和B,如果从执行A的线程来看,当另一个线程执行B时,要么将B全部执行完,要么完全不执行B,那么A和B对彼此来说是原子的。实现原子操作可以使用锁,锁机制,满足基本的需求是没有问题的了,但是有的时候我们的需求并非这么简单,我们需要更有效,更加灵活的机制,synchronized关键字是基于阻塞的锁机制,也就是说当一个线程拥有锁的时候,访问同一资源的
逆风fei扬
·
2023-09-08 08:44
编程学习
的方向与赛道的选择没有最优解的
听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。作者:不渴望力量的哈士奇(哈哥),十余年工作经验,跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门CTO。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计划”发起人。现象级专栏《白宝书系列》作者,文章知识点浅显易懂且不失深度;易编程社区主理人,旨在共建技术人成长共同体。有小伙伴和我说ÿ
哈哥撩编程
·
2023-09-08 08:24
豁然·灵犀·一点通
学习
编程学习方向
赛道的选择
程序员最优解
选择的最优解
Java并发
编程之工具类
一、并发工具类JDK1.5引入常用并发工具类:CountDownLatch/Semaphore/CyclicBarrier/Exchanger1.CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作,效果跟join()类似应用场景:常用于等待多线程运行结果原理:内部采用共享锁实现publicclassCountDownLatchJobextendsThre
宏势
·
2023-09-08 08:37
各大厂800道Java后端经典面试题合集
目录:Java基础(160道)Java集合(50道)
Java并发
&&多线程(81)JVM篇(51)数据库(100)缓存/Redis(70)计算机网络(40)消息队列(30)mybat
Java烟雨
·
2023-09-08 07:46
面试
java
后端
java
面试
jvm
spring
学习
收藏了800道Java后端经典面试题,共享给大家
Java基础Java集合
Java并发
&&多线程JVM篇数据库缓存/Redis计算机网络消息队列mybatis操作系统SpringNetty/tomcat常用Linu
Netty711
·
2023-09-08 06:38
java
面试
开发语言
spring
微服务
ReentrantLock与ReentrantReadWriteLock源码分析
《
Java并发
编程之美》读书笔记独占锁ReentrantLock的原理类图结构ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取到该锁,其他获取该锁的线程会被阻塞返给到AQS阻塞队里面
Everglowsc
·
2023-09-08 06:37
Java并发
工具类--CountDownLatch详解
CountDownLatch是一个同步工具类,用来协调多个线程之间的同步。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。举个例子来
安中古天乐
·
2023-09-07 22:47
Python
编程学习
第五课之Pycharm基本用法(二)如何调整页面字体大小
在HelloWorld练习完毕之后,一个基本的Python代码已经编写完成。不过在操作过程中我们还是感觉到使用的有些不便利,操作起来字体为何这么小?那么接下来再教给大家如何设置PyCharm的字体大小。在学习Python的过程中,建议找一些学习伙伴一起来学习和讨论,效果更佳。如果想学习Python,欢迎加入Python学习交流群(1104627612),一起督促,一起学习。PyCharm设置字体大
饼干软件测试
·
2023-09-07 12:45
Java并发
- 工具篇
文章目录简介正文1.什么是并发工具2.倒计数器CountDownLatch3.倒计数器升级版CyclicBarrier【循环栅栏】4.信号量Semaphore5.区别总结后记简介前面我们介绍了JUC中的并发容器,它相当于一个同步容器的升级版,很大程度上提高了并发的性能今天我们来介绍JUC中的并发工具,它主要是通过改变自身的状态来控制线程的执行流程;常见的有如下几种:CountDownLatch:倒
往事随风_h
·
2023-09-07 10:34
Java
java
多线程
并发编程
数据库
游戏
网络安全(黑客)自学
网络安全学习路线1、Web安全相关概念(2周)2、熟悉渗透相关工具(3周)3、渗透实战操作(5周)4、关注安全圈动态(1周)5、熟悉Windows/KaliLinux(3周)6、服务器安全配置(3周)7、脚本
编程学习
初阶羊
·
2023-09-07 09:49
学习路线
技能树
计算机
学习
笔记
web安全
安全
网络安全
深度学习
网络
18
Java并发
机制的底层实现原理_volatile实现原理
Java并发
机制的底层实现原理_volatile实现原理
Java并发
机制的底层实现原理volatile关键字volatile的两条实现原则(Lock前缀的作用)
Java并发
机制的底层实现原理Java代码在编译后会变成
EngineerForSoul
·
2023-09-07 00:53
Java
Thread
ThreadPool
Java并发机制底层实现
volatile实现原理
volatile的实现原则
Java多线程
volatile如何实现同步
线程同步关键字
Java并发
学习(三)----volatile关键字、Java内存模型
摘要:在
Java并发
编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。
彳亍口巴
·
2023-09-06 20:59
5个案例和流程图让你从0到1搞懂volatile关键字
volatile随着硬件的提升,机器的核心数从曾经的单核变为多核,为了提升机器的利用率,现在的并发编程变得越来越重要,成为工作中、面试中的重中之重,而为了能够更好的理解、使用并发编程,就应该构建出自己的
Java
·
2023-09-06 20:09
后端
5个案例和流程图让你从0到1搞懂volatile关键字
volatile随着硬件的提升,机器的核心数从曾经的单核变为多核,为了提升机器的利用率,现在的并发编程变得越来越重要,成为工作中、面试中的重中之重,而为了能够更好的理解、使用并发编程,就应该构建出自己的
Java
·
2023-09-06 19:08
后端
Ajax
编程学习
笔记
Ajax编程模板引擎模板引擎概述作用:使用模板引擎提供的模板语法,可以将数据和HTML拼接起来。官方地址:art-template使用步骤下载art-template模板引擎库文件并在HTML页面中引入库文件准备art-template模板 告诉模板引擎将哪一个模板和哪个数据进行拼接varhtml=template('tpl',{username:'zhangsan',age:'20'});将拼
好好学习不行吗
·
2023-09-06 15:01
Ajax
ajax
javascript
前端
Java并发
之:死锁
前言在本文中,我们将探讨死锁的概念及其产生的原因,并通过示例代码来说明死锁的出现情况。我们还将介绍如何通过破坏死锁的不同条件来解决死锁问题,通过深入了解死锁及其解决方法,我们可以更好地应对并解决系统中可能出现的死锁情况。1.死锁的概念与产生死锁的条件死锁指的是,一组互相竞争资源的线程,它们之间相互等待而导致永久阻塞的现象。当下面四个条件同时满足时,就会产生死锁:1.互斥:一个共享资源同一时间只能被
·
2023-09-06 15:11
java并发编程
Golang协程和Java线程
前言最近刚读完
Java并发
编程实战、深入理解Java虚拟机。打算写一篇总结性文章,思来想去文章的内容,最后决定还是不要限定于Java这门语言,应该从提升性能的整体出发,所以就有了这篇文章。
kevinyangyyz
·
2023-09-06 10:09
1024程序员节
并发编程
java并发
编程(八)
1.等待多线程完成的CountDownLatchCountDown允许一个或者多个线程等待其他线程来完成工作。packagecn.smallmartial.concurrency;importsun.nio.ch.ThreadPool;importjava.util.concurrent.CountDownLatch;/***@Authorsmallmartial*@Date2019/8/29*@
smallmartial
·
2023-09-06 08:18
【
java并发
编程】引言
目录引言1.并发编程的重要性2.并发的新定义3.对
Java并发
编程的期望和目标4.一个场景,加深理解引言1.并发编程的重要性提高程序运行效率:在单核处理器时代,由于程序无法并行执行,即使每个任务的计算量很小
'零'Bug
·
2023-09-06 08:33
java
数据库
服务器
C语言实现聊天室(windows版本)【推荐指数:⭐⭐⭐⭐⭐】
来源:微信公众号「
编程学习
基地」文章目录C语言聊天室运行效果分析设计多线程线程的同步服务端设计遇到的问题原文链接:点我获取C语言聊天室基于tcp实现群聊功能,本项目设计是在windows环境下基于套接字
DeRoy
·
2023-09-06 04:33
编程学习基地
多线程
c++
c语言
JAVA并发
专题(2)之JMM&synchronized&volatile详解
一、什么是JMM模型Java内存模型(JavaMemoryModel简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变量都存储在主内存,主
技术路上的苦行僧
·
2023-09-06 04:18
JAVA并发专题
java
并发编程
volatile
happens-before
JAVA并发
专题(1)之操作系统底层工作的整体认识
一、分诺依曼计算机模型现代计算机模型是基于-冯诺依曼计算机模型,计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指令。程序与数据一样存贮,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最
技术路上的苦行僧
·
2023-09-06 04:47
JAVA并发专题
java
JAVA并发
操作系统底层知识
进程与线程
Java并发
编程艺术(五)
Java并发
容器和框架
1、ConcurrentHashMap多线程HashMapput可能引起死循环。https://blog.csdn.net/qq_35958391/article/details/125015642ConcurrentHashMap使用锁分段,将数据分段存储,每段都分配锁。由Segment数组结构和HashEntry数组结构组成。Segment是一种可重入锁,HashEntry用于存储键值对数据。
kaiker
·
2023-09-05 23:27
上一页
27
28
29
30
31
32
33
34
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他