线程之函数同步

/**
 * 同步的第二种方式-->同步函数
 * 
 * 需求:储户,两个,每个都到银行存钱每次存100,共三次
 * 
 * 分析:1.要有一个银行-->金库的钱每次存进去可以增加
 *     2.要有封装运行任务的线程类
 * @author 罗摩衔那
 *
 */
class Banck
{
    //金库初始金钱为0,考虑到现实中金库是不对外暴露的,故用private修饰
    private int vault;
    
    /**
     * 方式二:函数同步
     *   由于在Cus的run方法中,add方法一同进栈
     *   因此也属于线程任务,只需给函数方法加上同步性质即可
     * @param sum
     */
    public synchronized void add(int sum) //定义sum变量为存进的资金
    {
        vault+=sum;
        System.out.println(Thread.currentThread().getName()+"..."+vault);
    }
}

class Cus implements Runnable
{
    Banck b=new Banck();//创建一个银行对象,代表存的是同一个银行
    Object o=new Object();
    public void run()
    {
//    方法一:上同步锁      synchronized (o)
//        {
            for(int i=1;i<=3;i++) //要存三次
            {
                b.add(100);    //调用了Banck的add方法代表了add函数也属于线程运行任务
            }    
//        }            
    }
}
public class Syschronization_Function 
{
   public static void main(String[] args)
   {
    Cus c=new Cus();//创建线程封装任务对象
    
    //下面两个线程对象代表是两个不同的人存钱
    Thread t1=new Thread(c);
    Thread t2=new Thread(c);
    
    t1.start();
    t2.start();
   }
}

温馨小提示:在本示例中创建两个线程对象代表的是两个不同的人,至于传入Cus对象,是为了在开启线程时,调用同一个run方法(干同一件事-->存钱),在run方法中封装的就是存钱的任务,需要创建银行对象才能调用其中的add方法,加入在run中创建银行对象,两个线程进入就会创建两次银行对象-->存的是不同银行.因为我们总是说对象是类的实例化.此时可以在if函数块封装入同步代码块中(本质就是一个函数代码块).其实线程任务不仅仅只局限于run方法中-->比如在本例中,add函数代码块就随run一起进栈,所有add也属于线程任务的一部分,也就是说我们也可以把下面两行代码封装进同步函数代码块中

synchronize(obj)
{ vault+=sum; System.out.println(Thread.currentThread().getName()+"..."+vault);
}
我是直接给add函数代码块加上同步性质了

其实,我写博客是给自己看的,纯碎是为了加深记忆,不会写的很详细勒

转载于:https://www.cnblogs.com/zjm1999/p/9879759.html

(1)普通用户端(全平台) 音乐播放核心体验: 个性化首页:基于 “听歌历史 + 收藏偏好” 展示 “推荐歌单(每日 30 首)、新歌速递、相似曲风推荐”,支持按 “场景(通勤 / 学习 / 运动)” 切换推荐维度。 播放页功能:支持 “无损音质切换、倍速播放(0.5x-2.0x)、定时关闭、歌词逐句滚动”,提供 “沉浸式全屏模式”(隐藏冗余控件,突出歌词与专辑封面)。 多端同步:自动同步 “播放进度、收藏列表、歌单” 至所有登录设备(如手机暂停后,电脑端打开可继续播放)。 音乐发现与管理: 智能搜索:支持 “歌曲名 / 歌手 / 歌词片段” 搜索,提供 “模糊匹配(如输入‘晴天’联想‘周杰伦 - 晴天’)、热门搜索词推荐”,结果按 “热度 / 匹配度” 排序。 歌单管理:创建 “公开 / 私有 / 加密” 歌单,支持 “批量添加歌曲、拖拽排序、一键分享到社交平台”,系统自动生成 “歌单封面(基于歌曲风格配色)”。 音乐分类浏览:按 “曲风(流行 / 摇滚 / 古典)、语言(国语 / 英语 / 日语)、年代(80 后经典 / 2023 新歌)” 分层浏览,每个分类页展示 “TOP50 榜单”。 社交互动功能: 动态广场:查看 “关注的用户 / 音乐人发布的动态(如‘分享新歌感受’)、好友正在听的歌曲”,支持 “点赞 / 评论 / 转发”,可直接点击动态中的歌曲播放。 听歌排行:个人页展示 “本周听歌 TOP10、累计听歌时长”,平台定期生成 “全球 / 好友榜”(如 “好友中你本周听歌时长排名第 3”)。 音乐圈:加入 “特定曲风圈子(如‘古典音乐爱好者’)”,参与 “话题讨论(如‘你心中最经典的钢琴曲’)、线上歌单共创”。 (2)音乐人端(创作者中心) 作品管理: 音乐上传:支持 “无损音频(FLAC/WAV)+ 歌词文件(LRC)+ 专辑封面” 上传,填写 “歌曲信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值