0%

用一个比较流行的吃货和包子铺的案例来学习一下。

开启子线程的方法

第一种是,创建Thread的子类对象,重写run()方法,将子线程要运行的代码写在run()方法的方法体内。
第二种是构造一个Thread对象,传递一个Runnable的实现类对象,重写Runnable里的run()方法,把子线程要运行的代码写在run()方法的方法体内。

阅读全文 »

· NEW – 线程刚被创建,但是并未启动。还没调用start方法。
· Runnable – 线程可以在java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,这取决于操 作系统处理器。
· Blocked – 当一个线程试图获取一个对象锁,而该对象锁被其他的线程持有,则该线程进入Blocked状 态;当该线程持有锁时,该线程将变成Runnable状态。
· Waiting – 一个线程在等待另一个线程执行一个(唤醒)动作时,该线程进入Waiting状态。进入这个 状态后是不能自动唤醒的,必须等待另一个线程调用notify或者notifyAll方法才能够唤醒。
· Timed Waiting – 同waiting状态,有几个方法有超时参数,调用他们将进入Timed Waiting状态。这一状态 将一直保持到超时期满或者接收到唤醒通知。带有超时参数的常用方法有Thread.sleep 、 Object.wait。
· Terminated – 因为run方法正常退出而死亡,或者因为没有捕获的异常终止了run方法而死亡。

阅读全文 »

代码块

静态代码块

    静态代码块在类中,方法外,且用static关键字修饰,方法体用{}括起来。静态代码随类的加载而加载,只在加载时执行一次。

构造代码块

    构造代码块在类中,方法外,方法体用{}括起来,没有修饰符。构造代码块先于构造方法执行,每次构造对象时调用。

阅读全文 »

出现的问题

    今天做接口测试的时候,本想使用Android和iOS移动端和接口一起进行测试,模拟多人参加活动的情况。结果启动接口测试程序就报错了:

1
requests.exceptions.SSLError: HTTPSConnectionPool(host='xxx.example.com', port=443): Max retries exceeded with url: /api/grab/styles (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

    其中xxx.example.com是接口的host,我做了保密处理,而/api/grab/styles是path。经过研究发现,只要我开启Fiddler抓包工具,接口程序就跑步起来,要报错。一旦关闭Fiddler,就可以成功启动。

解决方法

    在网上搜索到了解决方法,打开Fiddler,点击左下角Capturing按钮,关掉Fiddler对电脑端的代理即可。

阅读全文 »

在项目中直接使用命令安装PostgreSQL的驱动,会报如下错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Collecting psycopg2
Using cached https://files.pythonhosted.org/packages/23/7e/93c325482c328619870b6cd09370f6dbe1148283daca65115cd63642e60f/psycopg2-2.8.2.tar.gz
ERROR: Complete output from command python setup.py egg_info:
ERROR: running egg_info
creating pip-egg-info/psycopg2.egg-info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'

Error: pg_config executable not found.

pg_config is required to build psycopg2 from source. Please add the directory
containing pg_config to the $PATH or specify the full executable path with the
option:

python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

If you prefer to avoid building psycopg2 from source, please install the PyPI
'psycopg2-binary' package instead.

For further information please check the 'doc/src/install.rst' file (also at
<http://initd.org/psycopg/docs/install.html>).

----------------------------------------
ERROR: Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/03/qzp5frlx0rn9npspq85cztrc0000gn/T/pip-install-0dzf8szu/psycopg2/

百度了很多解决方案,最后,还是直接在Mac上安装PostgreSQL比较靠谱:

1
brew install postgresql

当然前提是要在电脑上安装homebrew工具才行。

    使用Fiddler对手机应用进行抓包时,若应用内有内部web链接,点击后网络无链接。
这种情况只有在iOS12及以上会出现,解决的办法是:

设置-关于本机-证书设置-启动证书

    在Ubuntu18.04.2环境下,使用nginx1.14.0+gunicorn19.9.0+MySQL5.7.26的方式搭建Django博客,博客使用的是DjangoBlog v7.0(python3.6和Django2.1)。

开始准备

    首先给服务器重装Ubuntu的镜像,我选择的目前阿里云上最新的版本18.04.2。
    在安装之前,需要更新apt-get工具:

1
sudo apt-get update

MySQL

安装MySQL

1
sudo apt-get install mysql-server

安装配置

1
sudo mysql_secure_installation

检查服务状态:

阅读全文 »